Главная > Powershell > Работа с архивами в Powershell

Работа с архивами в Powershell

Когда-то давно приходилось автоматизировать работу с архивированием и разархивированием файлов через Powershell. Тогда я для этого использовал консольную версию 7zip – ложил его в определённое место и в скрипте вызывал его оттуда. Сейчас вновь потребовалось поработать с архивами, но, как оказалось, сейчас всё намного проще.

Начиная с версии .NET Framework 4.5 появился встроенный класс ZipFile, благодаря которому архивировать и разархивировать файлы одно удовольствие.

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

Add-Type -AssemblyName "System.IO.Compression.FileSystem"

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

# Каталог, который будем архивировать
$Source = 'C:\test'
# Путь, куда положить готовый архив
$ArchiveFileName = 'C:\archive.zip'
# Архивируем
[IO.Compression.ZipFile]::CreateFromDirectory($Source, $ArchiveFileName)

Для разархивирования следует вызвать метод ExtractToDirectory, в который нужно передать разархивируемый файл, и путь к каталогу, в который нужно извлечь файлы:

# Путь к архиву
$ArchiveFileName = 'C:\archive.zip'
# Путь, куда разархивировать
$ExtractPath = 'C:\unzip'
# Разархивируем
[IO.Compression.ZipFile]::ExtractToDirectory($ArchiveFileName, $ExtractPath)
Рубрики:Powershell Метки: ,
  1. kaatm
    19/09/2017 в 23:16

    Это только для Win8 и более поздних.

  1. No trackbacks yet.

Оставьте комментарий