Архивирования через Powershell воз можно используя два командлета Compress-Archive и Extract-Archive. Эти команды доступны с версии 5.0. Что бы узнать версию нужно запустить:
host
#или
$PSVersionTable
Архивирование файла в powershell делается так:
Compress-Archive -DestinationPath C:\test3.zip -Path 'C:\Folder1\test.txt'
Где:
- DestinationPath - путь куда архив будет сохранен
- Path - папка или файл который мы планируем архивировать
Выбирать формат архивирования мы не можем, он всегда ZIP. Мы можем выбрать тип сжатия:
Compress-Archive -CompressionLevel Fastest -DestinationPath C:\test4 -Path "C:\Folder1\file"
CompressionLevel - уровень компрессии данных. Мы можем сэкономить место путем сжатия или увеличить скорость не прибегая к сжатию вовсе. Тут есть 3 варианта:
- Fastest
- NoCompression
- Optimal (по умолчанию)
Мы можем выполнять архивацию в Powershell используя несколько папок или документов:
Compress-Archive -DestinationPath C:\test5 -Path C:\Folder1\, C:\Folder2\
Либо можем обновить существующий архив новыми файлами добавив ключ Update:
Compress-Archive -Path C:\Folder3\ -Update -DestinationPath C:\test5.zip
Архивацию в powershell можно использовать совместно с командой Get-ChildItem и фильтровать глубину и типы файлов для добавления в архив:
Get-ChildItem -Path C:\Folder1\,C:\Folder2\ -Include "*.txt" -Exclude "*.exe" -Recurse | Compress-Archive -DestinationPath C:\test6.zip
Где:
- Include - включает любые файлы. В моем случаем возьмутся все файлы, которые заканчиваются на .txt
- Exclude - исключает файлы. В моем случае мне не нужны файлы, которые заканчиваются на .exe
- Recurse - рекурсивный поиск файлов.
Более подробно Get-ChildItem рассматривался тут.
Для извлечение данных из архива работает этот командлет:
Expand-Archive -Path C:\zipfile.zip -DestinationPath C:\Unzipped2
Для извлечения множества файлов из архивов, которые лежат в текущей папке, можно сделать следующее:
Get-ChildItem -Path C:\*.zip | Expand-Archive -DestinationPath C:\Unzipped2 -Force
Ключ -Force перезапишет те файлы если названия будут совпадать
...
Подписывайтесь на наш Telegram канал
Теги: #powershell