wie gezippte ordner mit batch entzippen?

3 Antworten

Von Experte Erzesel bestätigt

Mit reinen Windows-Bordmitteln an der Kommandozeile schwierig...

Aber du kannst aus einer normalen Batch auch ein PowerShell-Skript starten...

powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"

Eine andere Möglichkeit wäre, aus der Batch heraus ein VB-Skript zu generieren, welches die in Windows eingebaute ZIP-Funktionalität ansteuert...
Ist hier: https://jagaroth.livejournal.com/69147.html beschrieben und hier: https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line diskutiert.

Auf letztgenannter Seite wurde quasi die selbe Frage gestellt... die meisten Antworten beziehen sich dennoch auf extern benötigte Tools wie unzip.exe, java, 7zip usw. aber darunter hat's eben auch jemand mit Bormitteln über ein dynamisch erzeugtes VB-Skript ganz ohne externe Tools gebastelt... Ausprobiert habe ich es allerdings nicht.


Mensch4 
Beitragsersteller
 22.04.2021, 16:57

ich habe es jetzt über vbs gelöst, funktioniert ganz hervorragend

0

Eine weitere, allerdings schon etwas "abgehobene" Variante wäre, das externe Tool (pkunzip.exe o.ä.) mit in die Batch-Datei zu packen, beim Batch-Start eben diese EXE aus dem Skript heraus ins TEMP-Verzeichnis o.ä. schreiben zu lassen und dann ganz einfach die Kommandozeilen-Funktionen von pkunzip.exe (oder unzip.exe oder was auch immer) zu verwenden.

Hört sich abgefahren an, ist es irgendwie auch... und die Möglichkeit, binäre Daten (und somit ganze Programme) in ein Batch-Skript zu packen, ist vergleichsweise selten verwendet. Hierzu wird die Binärdatei zunächst per BASE64 in ein Textformat konvertiert... das ist übrigens genau die Technik, mit der E-Mail-Anhänge an E-Mails angehängt werden, denn der imme rnoch verwendete uralte E-Mail-Standard unterstützt nur den Versand von ASCII-Text! Deshalb ist eine E-Mail mit einem 1-MB-Dateianhang auch immer deutlich größer als der Anhang... weil für die umkodierte Variante mehr "Text" benötigt wird. Beim E-Mail-Empfänger wird der als Text umkodierte Binär-Anhang dann wieder zurück ins Binärformat konvertiert.

Und genau das kannst du per Batch auch machen: Das BASE64-kodierte Programm mit ins Batch-Skript schreiben, beim Skript-Start den "Anhang" auspacken lassen... und schon kannst du das Programm verwenden.


Mensch4 
Beitragsersteller
 22.04.2021, 16:58

danke, werde ich mir mal ansehen

0
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
Woher ich das weiß:Hobby – Ich habe schon mit 4 einen Computer bekommen.