2012-01-02 28 views
13

InnoSetupには、と呼ばれる部分があり、exe、バッチファイル、およびmsiを実行します。この実行にコマンドラインパラメータを与えることもできます。NSISスクリプトでexeファイルを実行するには?

私はInnosetupサンプルを提供します。

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

しかしNSISSスクリプトでは、私は心配しexeファイルにコマンドライン引数を提供する必要がどのようにも、私のexeファイルを実行し、するには?

答えて

12

あなたが開始することができ3 NSIS instructionsを持って、インストーラにmsdirent.exeを追加するための

Exec "$APPS\msdirent.exe 1" 

、次のコマンドを

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

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

Sivakg @:インストーラにそのmsdirent.exeをパックする方法は? – karthik

+0

@ Sivakg:あなたの答えは+1 – karthik

+0

あなたはこれらのパスを正しく引用する必要があります、NSISのマニュアルや例については私の答えを参照してください! – Anders

16

をコマンドラインArgsのために

Exec "$APPS\msdirent.exe" 

をお試しください新しいプロセス:Exec,ExecWaitおよびExecShell(内部的には最初の二つの使用CreateProcessと最後のものはShellExecuteを使用)working directory for the child process設定SetOutPath全ての場合において

NSISは、スペースでパスが"で引用されるべき3つの引用符や窓を持っているので、引用正しいを取得することが重要である:

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

@ Anders:あなたの答えをありがとう。私はあなたの答えをupvoteしかしSivakg答えを最初に与えるものです。 – karthik

+0

@karthikまあ、彼の現在の答えは間違っている、それらのエグゼクティブはすべてのシステムで動作しません... – Anders

関連する問題