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?
3 réponses
essaye ceci:
C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y
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"
-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:
- options officielles de CLI à partir de 7zfx, et
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
etRunProgramm
configuration!
Le processus complet:
- Créer une archive
Package.7z
:- contenant
Installer.msi
et en pluscrap.cab
fichier.
- contenant
Créer un fichier de configuration
config.txt
:;!@Install@!UTF-8! Title="Installation" SetEnvironment="strInstall=hidcon:Installer.msi /qn" RunProgram="%strInstall%" ;!@InstallEnd@!
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.
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
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.