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

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

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

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

Сжатие-Архив-LiteralPath-DestinationPath

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

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

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

Сжатие-Архив-LiteralPath-DestinationPath

Заархивируйте всю папку и все ее содержимое.

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

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

вместо этого, потому что -LiteralPath их не принимает.

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

Выше мы объяснили, как корневой каталог и все его файлы и подкаталоги включаются при создании файла архива.  Однако, если вы хотите исключить корневую папку из zip-файла, вы можете использовать подстановочный знак, чтобы удалить ее из архива.  Добавляя звездочку

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

Сжать-Архив -Путь C:pathtofile*.jpg -DestinationPath C:pathtoarchive.zip

Сжать все содержимое папки, кроме корневой папки.

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

Уведомление:

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

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

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

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

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

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

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

Обновите существующий zip-файл с помощью параметра -Update.

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

Expand-Archive -LiteralPath -DestinationPath

и

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

Распакуйте архив с помощью командлета Expand-Archive. -DestinationPath Указанная папка назначения для извлечения файлов будет заполнена содержимым архива. Если папка не существовала до распаковки, PowerShell создает папку и помещает туда содержимое перед распаковкой.

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

В предыдущем примере, если мы опустим

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

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

Вы должны использовать только ]]>