Вверх

Как заархивировать (и разархивировать) файлы с помощью PowerShell

5 февраля 2021 |

Как заархивировать (и разархивировать) файлы с помощью PowerShell

Формат файла ZIP уменьшает размер файлов, сжимая их в один файл. Этот процесс экономит место на диске, шифрует данные и упрощает обмен файлами с другими. Вот как сжимать и распаковывать файлы с помощью PowerShell.

Как сжимать файлы с помощью PowerShell

Начнем со сжатия некоторых файлов в ZIP-архив с помощью командлета Compress-Archive. Он берет путь к любым файлам, которые вы хотите сжать (несколько файлов разделяются запятой), и архивирует их в указанном вами месте назначения.

Сначала откройте PowerShell, выполнив поиск в меню «Пуск», а затем введите следующую команду, заменив & lt, PathToFiles & gt и & lt, PathToDestination & gt на путь к файлам, которые вы хотите сжать, и имя и папка, которую вы хотите поместить, соответственно:

Compress-Archive -LiteralPath & lt, PathToFiles & gt, -DestinationPath & lt, PathToDestination & gt,

Zip up a few files in PowerShell.

Когда вы указываете путь назначения, будьте обязательно дайте файлу архива имя или PowerShellсохранит его как «.zip», где вы укажете.

Примечание: кавычки вокруг пути необходимы только в том случае, если путь к файлу содержит пробел.

В качестве альтернативы, чтобы заархивировать все содержимое папки — и все ее подпапки — вы можете использовать следующую команду, заменив & lt, PathToFolder & gt и & lt, PathToDestination & gt на путь к файлам, которые вы хотите сжать. и имя и папка, в которую он должен перейти, соответственно:

Compress-Archive -LiteralPath & lt, PathToFolder & gt, -DestinationPath & lt, PathToDestination & gt,

Zip up an entire folder and all of its contents.

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

Командлет Compress-Archive позволяет использовать подстановочный знак (*) для дальнейшего расширения функциональности. При использовании символа вы можете исключить корневой каталог, сжать только файлы в каталоге или выбрать все файлы определенного типа. Чтобы использовать подстановочный знак с Compress-Archive, вы должны использовать вместо этого параметр -Path, поскольку -LiteralPath их не принимает.

Выше мы рассмотрели, как включить корневой каталог и все его файлы и подкаталоги, когда создание архивного файла. Однако, если вы хотите исключить корневую папку из Zip-файла, вы можете использовать подстановочный знак, чтобы исключить ее из архива. Добавляя звездочку (*) в конец пути к файлу, вы сообщаете PowerShell только о том, что нужно получить то, что находится внутри корневого каталога. Он должен выглядеть примерно так:

Compress-Archive -Path C: pathtofile * -DestinationPath C: pathtoarchive.zip

Zip up the entire contents of a folder, without the root folder itself.

Далее, допустим, у вас есть папка с куча файлов разных типов (.doc, .txt, .jpg и т. д.), но хотят сжать все файлы одного типа. Вы можете указать PowerShell заархивировать их, не касаясь других явно. Обозначение команды будет выглядеть следующим образом:

Compress-Archive -Path C: pathtofile * .jpg -DestinationPath C: pathtoarchive.zip

Zip up only specific file types from a folder.

Примечание. Подкаталоги и файлы корневой папки не включаются в архив с помощью этого метода.

Наконец, если вам нужен архив который сжимает файлы только в корневом каталоге — и во всех его подкаталогах — вы должны использовать подстановочный знак звездочка-точка-звезда (*. *), чтобы заархивировать их. Это будет выглядеть примерно так:

Compress-Archive -Path C: pathtofile *. * -DestinationPath C: pathtoarchive.zip

Zip up only files from the root folder with the use of the widlcard star-dot-star (*.*).

Примечание. Подкаталоги и файлы корневой папки не включаются в архив с помощью этого метода.

Даже после завершения архивации вы можете обновить существующий заархивированный файл с помощью параметра -Update. Он позволяет заменять старые версии файлов в архиве более новыми с такими же именами и добавлять файлы, созданные в корневом каталоге. Это будет выглядеть примерно так:

Compress-Archive -Path C: pathtofiles -Update -DestinationPath C: pathtoarchive.zip

Update an already existing zip file with the use of the -Update parameter.

Как разархивировать файлы с помощью PowerShell

Дополнительно чтобы иметь возможность архивировать файлы и папки, PowerShell имеет возможность распаковывать архивы. Этот процесс даже проще, чем их сжатие, все, что вам нужно, — это исходный файл и место назначения для данных, готовых к распаковке.

Откройте PowerShell и введите следующую команду, заменив & lt, PathToZipFile & gt и & lt, PathToDestination & gt на путь к файлам, которые вы хотите сжать, а также имя и папку, в которую вы хотите перейти, соответственно:

Expand-Archive -LiteralPath & lt, PathToZipFile & gt, -DestinationPath & lt, PathToDestination & gt,

Unzip an archive with the Expand-Archive cmdlet.

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

По умолчанию, если вы не укажете параметр -DestinationPath, PowerShell распакует содержимое в текущую корневой каталог и используйте имя Zip-файла для создания новой папки.

В предыдущем примере, если мы не укажем -DestinationPath, PowerShell создаст папку «Архив» по ​​пути «C: Usersbrady» и извлечет файлы из архива в папку.

If you leave out the -DestinationPath parameter, PowerShell extracts the zip into its currently selected directory.

Если папка уже существует в месте назначения, PowerShell вернет ошибку при попытке распаковать файлы. Однако вы можете заставить PowerShell перезаписывать данные новыми, используя параметр -Force.

Параметр -Force следует использовать только в том случае, если старые файлы больше не нужны, так как это необратимо заменит файлы на вашем компьютере.

Как заархивировать (и разархивировать) файлы с помощью PowerShell


Напишите пару строк: