7zip-Befehlszeile, um etwas ohne Verzeichnis-Präfix zu komprimieren

490
videoguy

Wir haben eine Batch-Datei, die die ZIP-Funktionalität von Windows 10 verwendet, um Ordner zu komprimieren. Das ist so unvorhersehbar und schlägt in der Mitte eines 1-Stunden-Batch-Jobs fehl, was einen erneuten Start des gesamten Prozesses erforderlich macht. Die in Windows integrierte Zip-Funktion ist keine Konsolen-App. Es zeigt Benutzeroberflächenelemente an und schlägt fehl, wenn jemand nicht auf die Schaltfläche OK klickt.

Also begann ich mit 7z zu spielen. Es ist eine tragbare App ohne Abhängigkeiten und es ist schnell. Ich habe eine Batchdatei, in der das aktuelle Arbeitsverzeichnis beispielsweise c: \ work \ abuild \ job lautet. Es hat einen Unterordner maintool \ vendorA. Ich versuche, eine ZIP-Datei des VendorA-Ordners zu erstellen, indem Sie als Parameter c: \ work \ abuild \ job \ maintool \ vendorA übergeben. Es erstellt die ZIP-Datei mit ausschließlich vendorA-Inhalten, behält jedoch den gesamten Pfad c: \ work \ abuild \ job \ maintool \ vendorA in der zip-Datei bei. Nach dem Extrahieren wird die Ordnerstruktur erstellt, die ich nicht möchte.

Ich habe mir alle verfügbaren Befehlszeilenparameter für 7z angesehen. Ich habe keinen gefunden, der mir das erlaubt. Wenn ich statt eines absoluten Pfads einen relativen Pfad verwende, der mit. \ Beginnt, kann ich erreichen, was ich will. Dies erfordert jedoch das vollständige Umschreiben dieser Batchdatei. Es ist Teil einer größeren Batch-File-Lösung.

Ich wäre überrascht, wenn ich der erste bin, der sich mit diesem Problem beschäftigt. Dafür muss es eine Lösung geben. Aber ich weiß nicht wie.

Danke für deine Vorschläge.

0
https://stackoverflow.com/questions/17546016/wie-can-you-zip-or-unzip-from-the-script-verwendetnur- nur -windows-built-in-capabiliti Nordlys Jeger vor 6 Jahren 0
Bitte lies meine Frage. An diesem Punkt habe ich angefangen und möchte die integrierte Zip-Funktion nicht verwenden. Ich versuche das mit 7zip zum Laufen zu bringen. videoguy vor 6 Jahren 0
Können Sie den vollständigen Befehl angeben, den Ihre Batchdatei ausführt? Ich konnte dies mit einem absoluten Pfad nicht replizieren. Versuchen Sie auch [this] (https://superuser.com/a/340062/911683). Fügen Sie am Ende des Pfads im Wesentlichen ein Sternchen (`*`) hinzu. (`c: \ work \ abuild \ job \ maintool \ vendorA \ *`) Worthwelle vor 6 Jahren 2
Danke @worthwelle! Das ist der Trick. Nachdem ich \ * meinen absoluten Pfad angehängt hatte, verwendete der generierte zip relative Pfade außerhalb des absoluten Verzeichnisses. videoguy vor 6 Jahren 0

0 Antworten auf die Frage