Komprimieren und Entpacken von Dateien mit PowerShell
In PowerShell 5.0 verfügt Microsoft über Befehle zum Erstellen von ZIP-Archiven und zum Extrahieren von Dateien aus vorhandenen Archiven. In diesem Artikel werden die PowerShell-Befehle zum Archivieren und Entpacken komprimierter Dateien erläutert.
Die folgenden Befehle sind zwei der neuesten in PowerShell v5.0 veröffentlichten Cmdlets: Der Befehl Compress-Archive
erstellt eine gezippte Archivdatei aus Ordnern oder einzelnen Dateien und der Befehl Expand-Archive
zum Extrahieren von Dateien aus einer gezippten Archivdatei.
Komprimieren von Dateien mit PowerShell
Lassen Sie uns PowerShell verwenden, um Dateien in einem neuen .zip
-Archiv zu komprimieren.
Verwenden Sie den Parameter -Path
, um den Speicherort des Ordners anzugeben, den wir komprimieren möchten, und den Parameter -DestinationPath
, um den Namen des komprimierten Archivs anzugeben, das Sie erstellen möchten.
Der folgende Befehl komprimiert beispielsweise den Ordner Temp
im Stammverzeichnis C:
und erstellt ein Archiv namens Temp_Files.zip
im Temp-Ordner:
Compress-Archive -Path C:\Temp -DestinationPath C:\Temp\Temp_Files.zip
Alternativ könnten wir die Dateien im Temp-Ordner einzeln komprimieren, indem wir den Parameter -LiteralPath
anstelle des Parameters -Path
verwenden. Dadurch wird ein Archiv mit nur den beiden Dateien erstellt, die im Parameter -LiteralPath
aufgeführt sind:
Compress-Archive -LiteralPath C:\Temp\File1.txt, C:\Temp\File2.txt -DestinationPath C:\Temp\Temp_Files.zip -Force
Wir haben den Parameter -Force
hinzugefügt, um das erste von mir erstellte Archiv zu überschreiben. Ohne den Parameter -Force
können Sie vorhandene Archive nicht ersetzen, und Windows PowerShell fordert Sie stattdessen auf, Dateien zum Archiv hinzuzufügen.
Um mehrere Dateien zu einem Archiv hinzuzufügen, können wir den Parameter -Update
verwenden. Der folgende Befehl fügt beispielsweise alle Dateien im Ordner Invoices
zu meinem bestehenden Temp_Files.zip
-Archiv hinzu:
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip
Wir können auch den Parameter -CompressionLevel
mit einem von drei Werten verwenden: NoCompression
, Optimal
oder Fastest
.
Optimal
ist der Standardwert, wenn der Parameter -CompressionLevel
nicht im Ausdruck vorhanden ist. Optimale
Komprimierung verwendet die beste Komprimierung, kann aber länger dauern als Fastest
.
Verwenden Sie den Wert NoCompression
, um ein Archiv ohne Komprimierung zu erstellen.
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip -CompressionLevel Optimal
Dateien mit PowerShell entpacken
Um Dateien aus einem Archiv zu extrahieren, müssen wir den Namen des Archivs und den Zielordner für die entpackten Dateien angeben.
Mit dem Befehl Expand-Archive
wird der Inhalt des Archivs Temp_Files.zip
in einen Temp
-Ordner extrahiert.
Expand-Archive -LiteralPath C:\Temp\Temp_Files.Zip -DestinationPath C:\Temp
Expand-Archive
erstellt automatisch den Ordner der extrahierten Dateien.
Wenn die komprimierte Datei, die wir entpacken, jedoch bereits im Zielordner vorhanden ist, gibt Expand-Archive
einen Fehler aus. Wir können Dateien im Zielordner überschreiben, indem wir den Parameter -Force
zur Befehlszeile hinzufügen.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn