Was ist das Befehlszeilenargument von 7-Zip, um ein selbstextrahierendes Archiv zu erstellen?


8

Ich habe überall gesucht und konnte von niemandem eine klare Antwort finden.

Wenn ich den Inhalt von C: \ Temp in eine Datei namens Temp.exe (im 7z-Format) packen möchte, die sich selbst extrahiert, wie mache ich das in einer Batch-Datei?

Das funktioniert nicht:

"C:\Program Files\7-Zip\7z.exe" a -t7z -mx5 -sfx 7z.sfx directoryname archive.exe -mmt

Was ich daraus bekomme, ist ein selbstextrahierendes Archiv namens 7z.sfx. Kann das nicht herausfinden.

Antworten:


9

Ich habe es herausgefunden, nachdem ich damit herumgespielt habe:

:: zip
"C:\Program Files\7-Zip\7z.exe" a archive.exe -mmt -mx5 -sfx dirname
pause

4

Das Problem, das Sie hatten, ist, dass 7-zip keine Leerzeichen in den Argumenten mag. Was Sie wollten, war also eher:

"C:\Program Files\7-Zip\7z.exe" a archive.exe -mmt -mx5 -sfx7z.sfx dirname

2

Das sollte funktionieren:

"C:\Program Files\7-Zip\7z.exe" a -t7z -mx5 -sfx archive.exe directoryname -mmt

(PS: Program Files\7-zipZu Ihrer PATHUmgebungsvariablen hinzufügen, dort können Sie direkt auf die Datei zugreifen, 7z.exeanstatt "C:\Program Files\7-Zip\7z.exe")


Es muss auf jedem System funktionieren. Da 7-zip standardmäßig auf allen Windows-Systemen in diesem Verzeichnis installiert wird, ist die Wahrscheinlichkeit, dass das Skript auf einem anderen System ausgeführt wird, sehr viel höher.
— Djangofan

Verwenden Sie dann eine der folgenden Umgebungsvariablen: ProgramFiles = ProgramFiles (x86)
— Mark Allen

1

Halte es einfach. Das Handbuch sagt die Standardeinstellung:

  • Typ ist 7z
  • Komprimierungsmethode ist 5( 0zum Kopieren und 9für Ultra verwenden )
  • ( -mmtist für Multithreading gedacht und möglicherweise veraltet, da das Handbuch nicht definiert ist.)

Dies gibt also die grundlegende Antwort als:

7z a -sfx archive.exe dir

0

Mit 7-zip gibt es eine Befehlszeilenversion namens 7z.exe, die Sie von der Website von 7-zip herunterladen können. Verwenden Sie zum Erstellen eines selbstextrahierenden Installationsprogramms das Flag -sfx, gefolgt von einer Zahl für den Komprimierungsbetrag.


hat nicht funktioniert. siehe Frage Revision.
— Djangofan

Sieht so aus, als müsstest du nur ein paar Dinge bewegen. Ich bin froh, dass es für dich geklappt hat.
— Daisetsu
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.