Ruby Devkit est une archive auto-extractible basée sur 7-Zip.
Je voudrais l'invoquer silencieusement sans avoir à installer 7-Zip pour extraire les fichiers dans un dossier de mon choix, afin de pouvoir scripter l'installation. J'imagine que c'est quelque chose comme:
cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit"
Mais cela, bien sûr, ne fonctionne pas. Quels drapeaux de ligne de commande dois-je utiliser pour extraire silencieusement cette archive dans un dossier de mon choix?
essaye ça:
C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y
Mise à jour 2017 : L'outil de 7zsfx.info est maintenant mort et disparu.
Original, ancien message de 08-2015 :
Si vous essayez d'extraire une archive 7Zip SFX ( http://7zsfx.info/ ):
sfx.exe -y -gm2 -InstallPath="C:\\your\\target\\path"
-y
masquer certaines invites-gm2
masque complètement la boîte de dialogue d'extraction (mode silencieux)-InstallPath
définit le chemin cible (vous avez besoin de doubles barres obliques inverses)Guide SFX 7z
La façon officielle de créer un package SFX est d'utiliser -sfx[{name}] : Create SFX archive
.
Et cela signifie que les packages SFX créés utilisent deux types d'options CLI:
les options transmises que vous avez configurées dans votre configuration, avant de créer le package.
Vous pouvez le considérer comme un transfert de paramètres vers l'exécutable empaqueté. Ce transfert de paramètres dépend de la configuration SetEnvironment
et RunProgramm
!
Le processus complet:
Package.7z
: Installer.msi
et supplémentaires crap.cab
fichier.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 provient du package supplémentaire officiel 7Zip.
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é, créez simplement une archive auto-extractible en .exe. et l'exécuter avec les commutateurs -o et -y.
Je l'utilise pour économiser de l'espace sur la clé USB. Par exemple, j'exécute rarement l'application VDiskAir. 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 un BAT BAT DOS pour exécuter le VDiskAir.exe auto-extractible (environ 5 Mo) créé, enregistrez-le sous VDiskAir.bat contenant:
VDiskAir.exe -o%TMP% -y
%TMP%\VDiskAir\VDisk_Air.exe
Je ne crains pas que le dossier VDiskAir (dans% TMP% extrait avec les fichiers du programme VDiskAir) soit restauré après avoir exécuté VDiskAir de cette façon, car j'ai un script BAT pour effacer% TMP% à l'arrêt/au démarrage.
Voici ce que j'utilise pour le produit Autodesk:
Start /W %~dp0AutoCAD_2018_French_LP_Win_64bit_dlm.sfx.exe -suppresslaunch -d C:\Autodesk