ZIP файловият формат намалява размера на файловете, като ги компресира в един файл. Този процес спестява дисково пространство, криптира данни и улеснява споделянето на файлове с други. Ето как да архивирате и разархивирате файлове с помощта на PowerShell.
Как да архивирате файлове с помощта на PowerShell
Нека започнем с компресиране на някои файлове в ZIP файлов архив с помощта на командлета Compress-Archive. Той взема пътя до всички файлове, които искате да компресирате – няколко файла са разделени със запетая – и ги архивира в дестинацията, която сте посочили.
Първо отворете PowerShell, като го потърсите от менюто „Старт“ и след това въведете следната команда, като замените
Compress-Archive -LiteralPath-DestinationPath
Когато предоставите пътя на местоназначението, не забравяйте да дадете име на архивния файл или PowerShell ще го запише като „.zip“, където посочите.
Забележка: Цитатите около пътя са необходими само когато пътеката на файла съдържа интервал.
Като алтернатива, за да архивирате цялото съдържание на папка – и всички нейни подпапки – можете да използвате следната команда, като замените
Compress-Archive -LiteralPath-DestinationPath
В предишния пример поставихме пътя към директория с множество файлове и папки в нея, без да указваме отделни файлове. PowerShell взема всичко в главната директория и го компресира, подпапки и всичко останало.
Командлетът Compress-Archive ви позволява да използвате заместващ знак
за да разширите още повече функционалността. Когато използвате символа, можете да изключите основната директория, да компресирате само файлове в директория или да изберете всички файлове от определен тип. За да използвате заместващ знак с Compress-Archive, трябва да използвате параметъра -Path вместо това, тъй като -LiteralPath не ги приема.
Compress-Archive -Path C:pathtofile* -DestinationPath C:pathtoarchive.zip
По-горе разгледахме как да включим главната директория и всички нейни файлове и поддиректории, когато създаваме архивен файл. Ако обаче искате да изключите главната папка от Zip файла, можете да използвате заместващ знак, за да я пропуснете от архива. Чрез добавяне на звездичка
Compress-Archive -Path C:pathtofile*.jpg -DestinationPath C:pathtoarchive.zip
до края на пътя на файла, вие казвате на PowerShell само да вземе това, което е вътре в основната директория. Трябва да изглежда така:
След това кажете, че имате папка с куп различни типове файлове (.doc, .txt, .jpg и т.н.), но искате да компресирате всички от един тип. Можете да кажете на PowerShell да ги архивира, без да докосвате другите изрично. Нотацията на командата ще изглежда така:
Compress-Archive -Path C:pathtofile*.* -DestinationPath C:pathtoarchive.zip
Забележка: Поддиректориите и файловете на главната папка не са включени в архива с този метод.
И накрая, ако искате архив, който компресира само файлове в основната директория — и всички нейни поддиректории — ще използвате заместващия знак звезда-точка-звезда (*.*), за да ги архивирате. Ще изглежда нещо подобно:
Compress-Archive -Path C:pathtofiles -Update -DestinationPath C:pathtoarchive.zip
Забележка: Поддиректориите и файловете на главната папка не са включени в архива с този метод.
Дори след като архивът приключи, можете да актуализирате съществуващ компресиран файл с помощта на параметъра -Update. Позволява ви да замените по-старите версии на файлове в архива с по-нови, които имат същите имена, и да добавяте файлове, които са били създадени в главната директория. Ще изглежда нещо подобно:
Как да разархивирате файлове с помощта на PowerShell
Expand-Archive -LiteralPath-DestinationPath
и
с пътя до файловете, които искате да компресирате, и съответно името и папката, в която искате да отиде:
Папката на местоназначението, посочена за извличане на файловете, ще се попълни със съдържанието на архива. Ако папката не е съществувала преди разархивирането, PowerShell ще създаде папката и ще постави съдържанието в нея, преди да разархивира.
По подразбиране, ако пропуснете параметъра -DestinationPath, PowerShell ще разархивира съдържанието в текущата основна директория и ще използва името на Zip файла, за да създаде нова папка.
В предишния пример, ако оставим -DestinationPath , PowerShell ще създаде папката „Архив“ в пътя „C:Usersbrady“ и ще извлече файловете от архива в папката.
Ако папката вече съществува в местоназначението, PowerShell ще върне грешка, когато се опита да разархивира файловете. Можете обаче да принудите PowerShell да презапише данните с новите, като използвате параметъра -Force.
Трябва да използвате параметъра -Force само ако старите файлове вече не са необходими, тъй като това необратимо ще замени файловете на вашия компютър.