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

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

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

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

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

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>

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

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

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

Compress-Archive -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>

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

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

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

Compress-Archive -Path C:\path\to\file\* -DestinationPath C:\path\to\archive.zip

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

Compress-Archive -Path C:\path\to\file\*.jpg -DestinationPath C:\path\to\archive.zip

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

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

Compress-Archive -Path C:\path\to\file\*.* -DestinationPath C:\path\to\archive.zip

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

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

Compress-Archive -Path C:\path\to\files -Update -DestinationPath C:\path\to\archive.zip

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

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

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

Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.