Как архивировать/распаковывать файлы в Powershell?

Как архивировать/распаковывать файлы в Powershell?

Существует ли однострочная команда, которая сжимает/распаковывает файлы (*.zip) в PowerShell?

решение1

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

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

Поиск в Google по запросам «zip powershell» или «unzip powershell» также может дать полезные результаты.

решение2

Вот как это можно сделать чисто из Powershell без внешних инструментов. Это распаковывает файл с именем test.zip в текущий рабочий каталог:

$shell_app=new-object -com shell.application
$filename = "test.zip"
$zip_file = $shell_app.namespace((Get-Location).Path + "\$filename")
$destination = $shell_app.namespace((Get-Location).Path)
$destination.Copyhere($zip_file.items())

решение3

Теперь в .NET Framework 4.5 естьZipFileкласс, который можно использовать следующим образом:

[System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::ExtractToDirectory($sourceFile, $targetFolder)

решение4

Вы можете захотеть проверитьРасширения сообщества PowerShell (PSCX)в котором есть командлеты специально для этого.

Связанный контент