Работа с архивами в 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)
Ссылка на оригинальную статью: https://smearg.wordpress.com/2015/03/19/%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0%D0%BC%D0%B8-%D0%B2-powershell/

Комментарии

Популярные сообщения из этого блога

Настройка TIME ZONE для Asterisk.

Макросы объединения ячеек в EXEL.