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.