Как тихо установить самораспаковывающийся 7-zip-архив в определенный каталог?

Ruby Devkit - это самораспаковывающийся архив, основанный на 7 zip.

Я хотел бы вызвать его в автоматическом режиме без необходимости установки 7-Zip для извлечения файлов в папку по своему выбору, чтобы я мог выполнить сценарий установки. Я представляю, что это что-то вроде:

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

Но это, конечно, не работает. Какие флаги командной строки я должен использовать, чтобы тихо извлечь этот архив в папку по своему выбору?

3 ответа

Попробуй это:

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 Guide

Официальным способом создания пакета SFX является использование -sfx[{name}] : Create SFX archive,

А это означает, что созданные пакеты SFX используют два вида параметров CLI:

  1. официальные опции CLI от 7zSFX, и
  2. переданные опции, которые вы настроили в своей конфигурации, перед созданием пакета.

    Вы можете думать об этом как о пересылке параметров в упакованный исполняемый файл. Этот параметр пересылки зависит от SetEnvironment а также RunProgramm Конфигурация!

Полный процесс:

  1. Создать архив Package.7z:
    • содержащий Installer.msi и дополнительные crap.cab файл.
  2. Создать файл конфигурации config.txt:

    ;!@Install@!UTF-8!
    Title="Installation"
    SetEnvironment="strInstall=hidcon:Installer.msi /qn"
    RunProgram="%strInstall%"
    ;!@InstallEnd@!
    
  3. Теперь мы генерируем Test.exe объединяя sfx+config+archive в исполняемый файл.

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

    Примечание: 7zS.sfx из официального дополнительного пакета 7zip.

  4. Теперь, когда вы бежите 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]

Примечание: -mx9 используется здесь для максимального сжатия.

Я создаю DOS BAT для запуска созданного самораспаковывающегося VDiskAir.exe (около 5 МБ), сохраняю его как VDiskAir.bat, содержащий:

VDiskAir.exe -o%TMP% -y

%TMP%\VDiskAir\VDisk_Air.exe

Меня не беспокоит, что папка VDiskAir (в%TMP%, извлеченная с помощью программных файлов VDiskAir) восстанавливается после запуска VDiskAir таким образом, поскольку у меня есть сценарий BAT для очистки%TMP% при завершении работы / запуске.

Вот то, что я использую для продукта Autodesk:

Start /W %~dp0AutoCAD_2018_French_LP_Win_64bit_dlm.sfx.exe -suppresslaunch -d C:\Autodesk
Другие вопросы по тегам