Как да архивирате (и разархивирате) файлове с помощта на PowerShell

ZIP файловият формат намалява размера на файловете, като ги компресира в един файл. Този процес спестява дисково пространство, криптира данни и улеснява споделянето на файлове с други. Ето как да архивирате и разархивирате файлове с помощта на PowerShell.

Как да архивирате файлове с помощта на PowerShell

Нека започнем с компресиране на някои файлове в ZIP файлов архив с помощта на командлета Compress-Archive. Той взема пътя до всички файлове, които искате да компресирате – няколко файла са разделени със запетая – и ги архивира в дестинацията, която сте посочили.

Първо отворете PowerShell, като го потърсите от менюто „Старт“ и след това въведете следната команда, като замените и с пътя до файловете, които искате да компресирате, и съответно името и папката, в която искате да отиде:

Compress-Archive -LiteralPath  -DestinationPath 

Когато предоставите пътя на местоназначението, не забравяйте да дадете име на архивния файл или PowerShell ще го запише като „.zip“, където посочите.

Забележка: Цитатите около пътя са необходими само когато пътеката на файла съдържа интервал.

Като алтернатива, за да архивирате цялото съдържание на папка – и всички нейни подпапки – можете да използвате следната команда, като замените и с пътя до файловете, които искате да компресирате, и съответно името и папката, в която искате да отиде:

Compress-Archive -LiteralPath  -DestinationPath 

В предишния пример поставихме пътя към директория с множество файлове и папки в нея, без да указваме отделни файлове. PowerShell взема всичко в главната директория и го компресира, подпапки и всичко останало.

  6 най-добри инструмента за наблюдение на бази данни за 2020 г

Командлетът 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 само да вземе това, което е вътре в основната директория. Трябва да изглежда така:

  Как да копирате и архивирате файлове във външно хранилище на iPhone и iPad

След това кажете, че имате папка с куп различни типове файлове (.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 Освен че може да архивира файлове и папки, PowerShell има способността да разархивира архиви. Процесът е дори по-лесен от компресирането им; всичко, от което се нуждаете, е изходният файл и дестинацията за данните, готови за разархивиране. Отворете PowerShell и въведете следната команда, като замените

Expand-Archive -LiteralPath  -DestinationPath 

и

  Най-добрите DD-WRT рутери за 2019 г. за взискателни потребители

с пътя до файловете, които искате да компресирате, и съответно името и папката, в която искате да отиде:

Папката на местоназначението, посочена за извличане на файловете, ще се попълни със съдържанието на архива. Ако папката не е съществувала преди разархивирането, PowerShell ще създаде папката и ще постави съдържанието в нея, преди да разархивира.

По подразбиране, ако пропуснете параметъра -DestinationPath, PowerShell ще разархивира съдържанието в текущата основна директория и ще използва името на Zip файла, за да създаде нова папка.

В предишния пример, ако оставим -DestinationPath , PowerShell ще създаде папката „Архив“ в пътя „C:Usersbrady“ и ще извлече файловете от архива в папката.

Ако папката вече съществува в местоназначението, PowerShell ще върне грешка, когато се опита да разархивира файловете. Можете обаче да принудите PowerShell да презапише данните с новите, като използвате параметъра -Force.

Трябва да използвате параметъра -Force само ако старите файлове вече не са необходими, тъй като това необратимо ще замени файловете на вашия компютър.