在InnoSetup中,有一个名为 run 的部分将执行exe,批处理文件和msi。我们还可以为此次运行提供命令行参数。
我提供了Innosetup样本:
[Run]
Filename: "{app}\msdirent.exe ";
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\NETCFSetupv2.msi""" ; Check:ShouldInstallComCtlUpdate ;
但是在NSISS Script中,如何运行我的exe并且还必须向相关的exe提供命令行参数?
答案 0 :(得分:19)
您有3 NSIS instructions可以启动新流程:Exec
,ExecWait
和ExecShell
(前两个使用CreateProcess,最后一个使用ShellExecute)
在所有情况下SetOutPath
设置working directory for the child process。
引用正确非常重要,因为NSIS有3个引号字符,带空格的窗口路径应引用"
:
ExecWait '"$instdir\myapp.exe"'
Exec '"$instdir\otherapp.exe" param1 "par am 2" param3'
答案 1 :(得分:13)
尝试以下命令
Exec "$APPS\msdirent.exe"
对于命令行参数,
Exec "$APPS\msdirent.exe 1"
将msdirent.exe添加到安装程序,
SetOutPath "$APPS"
File "localpath\msdirent.exe"
Exec "$APPS\msdirent.exe 1"