Ответ 1
попробуйте следующее:
C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y
Ruby Devkit - это самораспаковывающийся архив на основе 7-zip.
Я хотел бы вызвать его без пауз без установки 7-Zip для извлечения файлов в папку по своему выбору, чтобы я мог script установить. Я предполагаю, что это что-то вроде:
cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit"
Но это, конечно, не работает. Какие флаги командной строки я должен использовать, чтобы незаметно извлечь этот архив в папку по своему выбору?
попробуйте следующее:
C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y
Обновление 2017. Инструмент из 7zsfx.info теперь мертв и ушел.
Оригинал, старый пост от 08-2015:
Если вы пытаетесь извлечь файл 7zip SFX (http://7zsfx.info/):
sfx.exe -y -gm2 -InstallPath="C:\\your\\target\\path"
-y
скрыть некоторые подсказки-gm2
полностью скрывает диалог извлечения (тихий режим)-InstallPath
устанавливает целевой путь (вам нужна двойная обратная косая черта)7z Руководство по SFX
Официальным способом создания пакета SFX является использование -sfx[{name}] : Create SFX archive
.
И это означает, что созданные SFX-пакеты используют два типа опций CLI:
пройденные параметры, настроенные вами в конфигурации, перед созданием пакета.
Вы можете думать об этом как о пересылке параметров в упакованный исполняемый файл. Пересылка этого параметра зависит от конфигурации SetEnvironment
и RunProgramm
!
Полный процесс:
Package.7z
:
Installer.msi
и дополнительный файл crap.cab
.Создать конфигурационный файл config.txt
:
;[email protected]@!UTF-8!
Title="Installation"
SetEnvironment="strInstall=hidcon:Installer.msi /qn"
RunProgram="%strInstall%"
;[email protected]@!
Теперь мы генерируем Test.exe
путем объединения sfx + config + archive в исполняемый файл.
copy /b 7zS.sfx + config.txt + Package.7z SfxInstaller.exe
Примечание: 7zS.sfx - это официальный пакет 7zip.
Теперь, когда вы запустите SfxInstaller.exe
, вы можете передать экземпляр /lv InstallerLog.txt
для создания журнала установки, например.
SfxInstaller.exe /lv InstallerLog.txt
Так как используется 7-zip, просто создайте самораспаковывающийся архив в .exe. и запустите его с помощью переключателей -o и -y.
Я использую его для экономии места на USB-накопителе. Например, я запускаю приложение VDiskAir нечасто. Я создаю самораспаковывающийся архив папки программы VDiskAir (около 15 МБ):
7z a -SFX -mx9 VDiskAir.exe [VDiskAir folder path]
NB: -mx9 используется здесь для максимального сжатия.
Я создаю DOS BAT для запуска самораспаковывающегося VDiskAir.exe(около 5 МБ), созданного, сохраняя его как VDiskAir.bat, содержащий:
VDiskAir.exe -o%TMP% -y
%TMP%\VDiskAir\VDisk_Air.exe
Я не беспокоюсь, что папка VDiskAir (в% TMP%, извлеченная с помощью программных файлов VDiskAir) восстанавливается после запуска VDiskAir таким образом, так как у меня есть BAT script, чтобы очистить% TMP% при выключении/запуске.
Вот то, что я использую для продукта Autodesk:
Start /W %~dp0AutoCAD_2018_French_LP_Win_64bit_dlm.sfx.exe -suppresslaunch -d C:\Autodesk