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 的工具现在已经死了。
2015年8月的原始旧帖子:
如果您尝试提取 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 选项:
- 来自 7zSFX 的官方 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@!
-
现在我们通过将 sfx+config+archive 组合到可执行文件中来生成
Test.exe
。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%VDiskAirVDisk_Air.exe
我不担心以这种方式运行 VDiskAir 后 VDiskAir 文件夹(使用 VDiskAir 程序文件提取的 %TMP% 中(被取消删除,因为我有一个 BAT 脚本可以在关闭/启动时清除 %TMP%。
我用于欧特克产品的内容:
Start /W %~dp0AutoCAD_2018_French_LP_Win_64bit_dlm.sfx.exe -suppresslaunch -d C:Autodesk