Comment puis-je installer silencieusement une archive auto-extractible 7-zip dans un répertoire spécifique?

Ruby Devkit est une archive auto-extractible à 7 zones.

je voudrais l'invoquer silencieusement sans avoir à installer 7-Zip pour extraire les fichiers vers un dossier de mon choix, de sorte que je puisse script l'installation. J'imagine que ça doit être quelque chose comme:

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

Mais que, bien sûr, ne fonctionne pas. Quelles options de ligne de commande dois-je utiliser pour silencieusement extraire l'archive dans un dossier de mon choix?

23
demandé sur Anthony Mastrean 2013-07-17 01:33:19

3 réponses

essaye ceci:

C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y
32
répondu florind 2013-09-20 08:12:46

mise à Jour de 2017: L'outil de 7zsfx.info est maintenant mort et enterré.


Origine, l'ancien poste de 08-2015:

Si vous essayez d'extraire un 7-zip SFX (http://7zsfx.info/) archive:

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

Interrupteurs Docu

  • -y masquer certaines invites
  • -gm2 cache complètement la boîte de dialogue extraction (silent mode)
  • -InstallPath définit le chemin cible (vous avez besoin d'un double backslash)

7z SFX Guide

la façon officielle de créer un paquet SFX est d'utiliser -sfx[{name}] : Create SFX archive.

et cela signifie que les paquets SFX créés utilisent deux types d'options CLI:

  1. options officielles de CLI à partir de 7zfx, et
  2. les options passées que vous avez configurées dans votre configuration, avant de créer paquet.

    vous pouvez le considérer comme une redirection de paramètre vers l'exécutable empaqueté. Ce transfert de paramètre dépend du SetEnvironment et RunProgramm configuration!

Le processus complet:

  1. Créer une archive Package.7z:
    • contenant Installer.msi et en plus crap.cab fichier.
  2. Créer un fichier de configuration config.txt:

    ;!@Install@!UTF-8!
    Title="Installation"
    SetEnvironment="strInstall=hidcon:Installer.msi /qn"
    RunProgram="%strInstall%"
    ;!@InstallEnd@!
    
  3. maintenant nous générons Test.exe en combinant sfx+config+archive dans un exécutable.

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

    Remarque: 7zS.sfx est du paquet officiel 7zip extra.

  4. Maintenant, lorsque vous exécutez SfxInstaller.exe vous pouvez passer par exemple /lv InstallerLog.txt pour créer un journal d'installation, par exemple,

    SfxInstaller.exe /lv InstallerLog.txt

13
répondu Jens A. Koch 2017-03-31 11:04:56

puisque 7-zip est utilisé, il suffit de créer une archive auto-extractible.EXE. et de l'exécuter avec les options-o et-y.

Je l'utilise pour économiser de l'espace sur clé USB. Par exemple, je exécute L'application VDiskAir rarement. Je crée une archive auto-extractible du dossier du programme VDiskAir (environ 15 Mo):

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

NB: - mx9 est utilisé ici pour maximiser la compression.

je crée une batte DOS pour exécuter le VDiskAir auto-extracteur.exe (environ 5 Mo) créé, enregistrer comme VDiskAir.chauve contenant:

VDiskAir.exe -o%TMP% -y

%TMP%\VDiskAir\VDisk_Air.exe

Je ne suis pas inquiet que le dossier VDiskAir (dans %TMP% extracted avec les fichiers de programme VDiskAir) ne soit pas terminé après avoir exécuté VDiskAir de cette façon, puisque j'ai un script BAT pour effacer %TMP% sur la fermeture/démarrage.

1
répondu Hon Kong 2017-03-20 15:21:46