Como compactar/descompactar arquivos no Powershell?

Como compactar/descompactar arquivos no Powershell?

Existe uma linha única que compacta/descompacta arquivos (*.zip) no PowerShell?

Responder1

DotNetZippermitirá que você faça isso no PowerShell. Não é uma linha única, mas a biblioteca permitirá que você escreva o script do PowerShell necessário.

Você também pode usar a interface COM, consulteCompactar arquivos com o Windows PowerShell e empacotar um gadget da barra lateral do Windows Vista.

Pesquisar "zip powershell" ou "unzip powershell" no Google também pode gerar resultados úteis.

Responder2

É assim que você pode fazer isso exclusivamente no Powershell, sem nenhuma ferramenta externa. Isso descompacta um arquivo chamado test.zip no diretório de trabalho atual:

$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())

Responder3

Agora, no .NET Framework 4.5, existe umArquivo Zipclasse que você pode usar assim:

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

Responder4

Você pode querer conferirAs extensões da comunidade PowerShell (PSCX)que possui cmdlets especificamente para isso.

informação relacionada