如何将7-zip自解压存档静默安装到特定目录?

Jay*_*dse 28 command-line 7zip self-extracting

红宝石的devkit是7-ZIP基于自解压压缩包.

我想静静地调用它,而不必安装7-Zip将文件解压缩到我选择的文件夹,这样我就可以编写安装脚本.我想它是这样的:

cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit"
Run Code Online (Sandbox Code Playgroud)

但是,这当然不起作用.我必须使用哪些命令行标志来静默地将此存档提取到我选择的文件夹中?

小智 35

试试这个:

C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y
Run Code Online (Sandbox Code Playgroud)

  • @TasosLaskos,只需在命令前放置`start/b/wait`即可 (4认同)
  • 我怀疑这取决于存档的制作方式,但是对于例如 GitHub 便携式 Git distrubution 7z.exe 文件,Jens A Koch 的答案比这个更好(-InstallPath 而不是 -o) (2认同)

Jen*_*och 13

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选项:

  1. 来自7zSFX的官方CLI选项,以及
  2. 在创建包之前,您在配置中配置的传递选项.

    您可以将其视为转发到打包的可执行文件的参数.此参数转发取决于SetEnvironmentRunProgramm配置!

整个过程:

  1. 创建档案Package.7z:
    • 包含Installer.msi和附加crap.cab文件.
  2. 创建配置文件config.txt:

    ;!@Install@!UTF-8!
    Title="Installation"
    SetEnvironment="strInstall=hidcon:Installer.msi /qn"
    RunProgram="%strInstall%"
    ;!@InstallEnd@!
    
    Run Code Online (Sandbox Code Playgroud)
  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

  • http://7zsfx.info/已经消失,请使用https://olegscherbakov.github.io/7zSFX/ (2认同)