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包的官方方法是使用-sfx[{name}]: 创建SFX存档
。
这意味着创建的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@!
现在我们通过将 SFX+配置文件+归档文件组合成一个可执行文件来生成 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
7z a -SFX -mx9 VDiskAir.exe [VDiskAir folder path]
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
start /b /wait
放在命令前面。 - Kevin