1. C:\ITnator
  2. PowerShell

ZIP entpacken per PowerShell - so funktionierts!

Autor
Johannes Huber
Veröffentlicht
Aktualisiert
Lesezeit
1 Minuten
Comic: Admin vor einem Monitor mit PowerShell, zum Artikel: ZIP entpacken per PowerShell - so funktionierts!

Das ZIP - Format ist ein Format für komprimierte Dateien, das einerseits den Platzbedarf bei der Archivierung reduziert und andererseits als Container fungiert. In diesem Container sind mehrere zusammengehörige Dateien oder auch ganze Ordnerstrukturen zusammengefasst. Die Dateiendung für zip - Archive ist .zip. Die gängigsten Betriebssysteme wie Windows, Mac oder Linux können inzwischen .zip - Dateien mit den boardmitteln entpacken. In diesem Beitrag geht es um das Entpacken der Archive mit PowerShell. Wenn man in einem Script Dateien entpacken lassen möchte, oder automatisiert z.B. alle 2 Tage ein Archiv entpacken muss, verwendet man am Besten ein PowerShell Script. Wie man eine oder mehrere zip entpacken lassen kann mit PowerShell, könnt ihr in diesem Beitrag lesen.

EINE ZIP entpacken mit PowerShell

Im Endeffekt ist ein ein einfacher kleiner Befehl, den man benötigt, um die ZIP entpacken zu können.

PowerShell
Expand-Archive -Path "C:\daten.zip" -DestinationPath "C:\entpackteDaten"

MEHRERE ZIPs entpacken mit PowerShell

Um mehrere Archive nacheinander zu entpacken, da Sie beispielsweise den selben Dateinamen haben mit einer Nummerierung (Datei1.zip, Datei2.zip, etc.), müssen wir anders vorgehen.

PowerShell
gci "C:\dateien\Datei*.zip" | %{
    $targetfolder = "$($_.Directory.Fullname)\unzip"
    md $targetfolder -Force
    Expand-Archive $_.Fullname -DestinationPath $targetfolder -Force
}

:-)

Johannes Huber

Administrator bei ITnator

Schreibt über Probleme aus der Administration von Servern, Clients und vielen weiteren IT-Komponenten.

3 Kommentare

Kurt Gerster

Vielen Dank für das Script. Ich würde gerne mehrere ZIP Dateien in ein anderes Verzeichnis entpacken, aber so dass der Inhalt des ZIPs in einem Ordner (benannt nach dem Namen des ZIPs) landet. Leider finde ich hierzu nichts.

Johannes Huber

Hallo Kurt, Leider verstehe ich die Frage nicht ganz. Im Beitrag unter „mehrere ZIP‘s entpacken“ wird so etwas beschrieben. Oder meinst du etwas anderes? Gruß Johannes

Kurt, ich glaube ich hab verstanden was du damit meinst. In der Variable "$targetfolder" wird der Pfad, in den entpackt wird, zusammengesetzt. Bei "$_.Directory.Fullname" wird der aktuelle Pfad ausgelesen, in dem die ZIP liegt. Im Endeffekt muss Zeile 2 folgendermaßen angepasst werden: $targetfolder = "C:\DEINPFAD\$_.BaseName" #Ungetestet

Kommentar schreiben

Kommentare erscheinen nach unserer Prüfung. Gespeichert werden Name und Text, siehe Datenschutz.