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

时间:2013-07-16 21:33:19

标签: command-line 7zip self-extracting

Ruby Devkit是一个基于7-zip的自解压存档。

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

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

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

4 个答案:

答案 0 :(得分:34)

试试这个:

C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y

答案 1 :(得分:13)

2017年更新:来自7zsfx.info的工具现在已经死了。

来自08-2015的原帖,旧帖

如果您要提取7zip SFX(http://7zsfx.info/)存档:

sfx.exe -y -gm2 -InstallPath="C:\\your\\target\\path"

Switches Docu

  • -y隐藏一些提示
  • -gm2完全隐藏提取对话框(静音模式)
  • -InstallPath设置目标路径(您需要双反斜杠)

7z SFX指南

创建SFX包的官方方法是使用-sfx[{name}] : Create SFX archive

这意味着创建的SFX软件包使用两种CLI选项:

  1. 7zSFX和
  2. 的官方CLI选项
  3. 您在配置中配置的传递选项,然后再创建包。

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

  4. 完整过程:

    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. 现在我们通过将sfx + config + archive组合成一个可执行文件来生成Test.exe

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

      注意:7zS.sfx来自官方的7zip额外包。

    4. 现在,当您运行SfxInstaller.exe时,您可以传递/lv InstallerLog.txt来创建安装日志,例如

      SfxInstaller.exe /lv InstallerLog.txt

答案 2 :(得分:1)

由于使用了7-zip,只需在.exe中创建一个自解压存档。并使用开关-o和-y运行它。

我用它来节省USB驱动器的空间。例如,我不经常运行VDiskAir应用程序。我创建了VDiskAir程序文件夹的自解压存档(大约15MB):

7z a -SFX -mx9 VDiskAir.exe [VDiskAir folder path]

注意:此处使用-mx9来最大化压缩。

我创建一个DOS BAT来运行自解压的VDiskAir.exe(大约5MB)创建,保存为VDiskAir.bat包含:

VDiskAir.exe -o%TMP% -y

%TMP%\VDiskAir\VDisk_Air.exe

我不担心以这种方式运行VDiskAir后VDiskAir文件夹(在使用VDiskAir程序文件提取的%TMP%中)未删除,因为我有一个BAT脚本可以在关闭/启动时清除%TMP%

答案 3 :(得分:0)

以下是我用于Autodesk产品的信息:

Start /W %~dp0AutoCAD_2018_French_LP_Win_64bit_dlm.sfx.exe -suppresslaunch -d C:\Autodesk