2012-01-02 865 views
13

在InnoSetup中,有一部分叫做run它將執行exe,批處理文件和msi。我們也可以給這個運行提供命令行參數。如何在NSIS腳本中運行exe文件?

我提供Innosetup樣本:

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

但在NSISS腳本,如何管理我的exe文件,也是我必須提供的命令行參數有關exe文件?

回答

12

試試下面的命令

Exec "$APPS\msdirent.exe" 

對於命令行參數,

Exec "$APPS\msdirent.exe 1" 

添加msdirent.exe到安裝程序,

SetOutPath "$APPS" 
File "localpath\msdirent.exe" 

Exec "$APPS\msdirent.exe 1" 
+1

@ Sivakg:如何收拾這msdirent.exe進入安裝程序? – karthik 2012-01-02 13:04:30

+0

@ Sivakg:+1您的回答 – karthik 2012-01-02 13:22:26

+0

您需要正確引用這些路徑,請參閱NSIS手冊或我的答案爲例! – Anders 2012-01-02 13:54:39

16

你有3 NSIS instructions可以啓動新工藝:Exec,ExecWaitExecShell(內部前兩個使用CreateProcess,最後一個使用ShellExecute

SetOutPath設置working directory for the child process所有情況。

得到它是重要的引用正確的,因爲NSIS有3個引號字符和Windows路徑用空格應該"被引用:

ExecWait '"$instdir\myapp.exe"' 
Exec '"$instdir\otherapp.exe" param1 "par am 2" param3' 
+0

@安德斯:謝謝你的回答。我贊成你的回答,但Sivakg是首先給出答案的人。 – karthik 2012-01-06 04:23:14

+0

@karthik那麼,他目前的答案是錯誤的,那些Exec將無法在所有系統上工作... – Anders 2012-01-06 16:07:38

相關問題