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.
OpenClipart-Vectors / Pixabay
EINE ZIP entpacken mit PowerShell
Im Endeffekt ist ein ein einfacher kleiner Befehl, den man benötigt, um die ZIP entpacken zu können.
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.
gci "C:\dateien\Datei*.zip" | %{ $targetfolder = "$($_.Directory.Fullname)\unzip" md $targetfolder -Force Expand-Archive $_.Fullname -DestinationPath $targetfolder -Force }
🙂
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.
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