Ruby Devkit是一个基于7-zip 的自解压存档。
我想静默调用它,而不必安装 7-Zip 来将文件解压缩到我选择的文件夹中,这样我就可以编写安装脚本。我想它是这样的:
cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit"
但这当然行不通。我必须使用哪些命令行标志以静默方式将此存档提取到我选择的文件夹中?
Ruby Devkit是一个基于7-zip 的自解压存档。
我想静默调用它,而不必安装 7-Zip 来将文件解压缩到我选择的文件夹中,这样我就可以编写安装脚本。我想它是这样的:
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[{name}] : Create SFX archive
.
这意味着创建的 SFX 包使用两种 CLI 选项:
在创建包之前,您在配置中配置的传递选项。
您可以将其视为对打包可执行文件的参数转发。这个参数转发取决于SetEnvironment
和RunProgramm
配置!
整个过程:
Package.7z
:
Installer.msi
和附加crap.cab
文件。创建配置文件config.txt
:
;!@Install@!UTF-8!
Title="Installation"
SetEnvironment="strInstall=hidcon:Installer.msi /qn"
RunProgram="%strInstall%"
;!@InstallEnd@!
现在我们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 程序文件夹的自解压存档(大约 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%。
以下是我用于 Autodesk 产品的内容:
Start /W %~dp0AutoCAD_2018_French_LP_Win_64bit_dlm.sfx.exe -suppresslaunch -d C:\Autodesk