Wie komprimiere/entpacke ich Dateien in Powershell?

Wie komprimiere/entpacke ich Dateien in Powershell?

Gibt es einen Einzeiler zum Komprimieren/Entpacken von Dateien (*.zip) in PowerShell?

Antwort1

DotNetZipermöglicht Ihnen dies von PowerShell aus. Es ist kein Einzeiler, aber die Bibliothek ermöglicht Ihnen, das benötigte PowerShell-Skript zu schreiben.

Sie können auch die COM-Schnittstelle verwenden, sieheKomprimieren Sie Dateien mit Windows PowerShell und verpacken Sie dann ein Windows Vista Sidebar Gadget.

Auch die Google-Suche nach „zip powershell“ oder „unzip powershell“ kann hilfreiche Ergebnisse liefern.

Antwort2

So können Sie es rein aus Powershell heraus ohne externe Tools tun. Dadurch wird eine Datei namens test.zip in das aktuelle Arbeitsverzeichnis entpackt:

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

Antwort3

Jetzt gibt es im .NET Framework 4.5 eineZip-DateiKlasse, die Sie wie folgt verwenden können:

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

Antwort4

Vielleicht möchten Sie sich ansehenDie PowerShell Community Extensions (PSCX)welches über spezielle Cmdlets hierfür verfügt.

verwandte Informationen