2013-07-16 6 views
20

Das Ruby Devkit ist ein 7-zip-basiertes selbstextrahierendes Archiv.Wie installiere ich ein selbstextrahierendes 7-zip-Archiv automatisch in einem bestimmten Verzeichnis?

Ich möchte es ohne Installation von 7-Zip stillschweigend aufrufen, um die Dateien in einen Ordner meiner Wahl zu extrahieren, damit ich die Installation skripten kann. Ich stelle mir vor, es wäre etwas wie:

cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit" 

Aber das funktioniert natürlich nicht. Welche Befehlszeilen-Flags muss ich verwenden, um dieses Archiv automatisch in einen Ordner meiner Wahl zu extrahieren?

Antwort

26

versuchen Sie dies:

C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y 
+0

BTW, wenn Sie in Ihr aktuelles Arbeitsverzeichnis extrahieren wollten, übergeben Sie im o-Argument ". \ DevKit" – BuvinJ

+0

Gibt es eine Möglichkeit zu warten, bis die Extraktion abgeschlossen ist? Sobald der Fortschrittsdialog erscheint, wird der Befehl beendet. –

+3

@TasosLaskos, einfach 'start/b/wait' vor den Befehl setzen – Kevin

12

-Update 2017: Das Werkzeug aus 7zsfx.info ist jetzt tot und verschwunden.


Originale, alte Post 08-2015:

Wenn Sie eine 7-Zip-SFX (http://7zsfx.info/) Archiv zu extrahieren versuchen:

sfx.exe -y -gm2 -InstallPath="C:\\your\\target\\path"

Switches Docu

  • -y verstecken einige Aufforderungen
  • -gm2 die Extraktion vollständig Dialog versteckt (Silent-Modus)
  • -InstallPath den Zielpfad setzt (Sie doppelte Schrägstriche müssen)

7z SFX-Führer

Die Eine offizielle Möglichkeit, ein SFX-Paket zu erstellen, ist -sfx[{name}] : Create SFX archive.

Und das bedeutet, die erstellt SFX Pakete verwendet zwei Arten von CLI-Optionen:

  1. offiziellen CLI-Optionen aus 7zSFX und
  2. die Sie in Ihrer Konfigurations konfiguriert durch die Optionen übergeben, bevor das Paket zu erstellen.

    Sie können sich das als Parameter vorstellen, der an die gepackte ausführbare Datei weiterleitet. Diese Parameterweiterleitung ist abhängig von der Konfiguration SetEnvironment und RunProgramm!

Der vollständige Prozess:

  1. Archiv erstellen Package.7z:
    • Installer.msi und zusätzliche crap.cab Datei enthält.
  2. erstellen Konfigurationsdatei config.txt:

    ;[email protected]@!UTF-8! 
    Title="Installation" 
    SetEnvironment="strInstall=hidcon:Installer.msi /qn" 
    RunProgram="%strInstall%" 
    ;[email protected]@! 
    
  3. Jetzt erzeugen wir Test.exe von SFX Kombination + Config + Archiv in eine ausführbare Datei.

    copy /b 7zS.sfx + config.txt + Package.7z SfxInstaller.exe

    Hinweis: 7zS.sfx von dem offiziellen 7zip zusätzlichen Paket.

  4. Wenn Sie nun SfxInstaller.exe ausführen, können Sie beispielsweise /lv InstallerLog.txt übergeben, um ein Installationsprotokoll zu erstellen, z.

    SfxInstaller.exe /lv InstallerLog.txt

+0

-gm2 funktioniert nicht – thang

+0

Nun, es gibt mehrere 7zip SFX-Builder herum. Jeder von ihnen mit ein bisschen anderen CLI-Optionen. - Das Tool, auf das ich verwiesen habe (7zip SFX (http://7zsfx.info/)) ist inzwischen tot und weg ... ich werde den Beitrag aktualisieren. –

+0

in der Regel diese Dinge geben Sie die Befehlszeile, wenn Sie mit/h (wie die MSI-Sache) laufen, aber 7 Zip tut es nicht. Es ist ein bisschen lästig. – thang

1

Seit 7-zip verwendet wird, erstellen Sie einfach eine selbstextrahierende Archiv in .exe. und führe es mit den Schaltern -o und -y aus.

Ich benutze es, um Platz auf dem USB-Stick zu sparen. Zum Beispiel verwende ich VDiskAir Anwendung selten. Ich erstelle ein selbstextrahierendes Archiv des VDiskAir Programmordner (ca. 15 MB):

7z a -SFX -mx9 VDiskAir.exe [VDiskAir folder path] 

NB: -mx9 wird hier verwendet Kompression zu maximieren.

Ich erstelle ein DOS BAT laufen die selbstextrahier VDiskAir.exe (ca. 5 MB) erstellt, wird es als VDiskAir.bat speichern enthält:

VDiskAir.exe -o%TMP% -y 

%TMP%\VDiskAir\VDisk_Air.exe 

Ich mache mir keine Sorgen, dass die VDiskAir Ordner (in % TMP% extrahiert mit VDiskAir-Programmdateien) wird nach dem Ausführen von VDiskAir auf diese Weise wiederhergestellt, da ich ein BAT-Skript habe, um% TMP% beim Herunterfahren/Starten zu löschen.

+0

Verzeihen Sie mir, die zwei Zeilen in einer Zeile erscheinen, sollten sie sein: –

Verwandte Themen