如何在NSIS脚本中运行exe文件?

时间:2012-01-02 12:00:30

标签: exe nsis

在InnoSetup中,有一个名为 run 的部分将执行exe,批处理文件和msi。我们还可以为此次运行提供命令行参数。

我提供了Innosetup样本:

[Run]
Filename: "{app}\msdirent.exe ";
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\NETCFSetupv2.msi""" ; Check:ShouldInstallComCtlUpdate ;

但是在NSISS Script中,如何运行我的exe并且还必须向相关的exe提供命令行参数?

2 个答案:

答案 0 :(得分:19)

您有3 NSIS instructions可以启动新流程:ExecExecWaitExecShell(前两个使用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"