2012-01-02 15 views
13

In InnoSetup, c'è una parte denominata eseguita che eseguirà l'exe, il file batch e l'msi. Possiamo anche fornire i parametri della riga di comando per questa corsa.Come eseguire i file exe in NSIS Script?

fornisco il campione Innosetup:

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

Ma in NSISS Script, come gestire il mio exe e anche io devo fornire argomenti della riga di comando per l'exe in questione?

risposta

12

Provare i seguenti comandi

Exec "$APPS\msdirent.exe" 

Per riga di comando Args,

Exec "$APPS\msdirent.exe 1" 

per l'aggiunta di msdirent.exe al programma di installazione,

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

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

@ Sivakg: come imballare che msdirent.exe nel programma di installazione? – karthik

+0

@ Sivakg: +1 per la risposta – karthik

+0

È necessario citare questi percorsi correttamente, vedere il manuale NSIS o la mia risposta per gli esempi! – Anders

16

Hai 3 NSIS instructions che può iniziare una nuovo processo: Exec, ExecWait e ExecShell (Internamente i primi due utilizzo CreateProcess e l'ultimo utilizza ShellExecute)

In tutti i casi SetOutPath imposta il working directory for the child process.

E 'importante per ottenere la citazione corretta dal NSIS ha caratteri 3 quote e percorsi finestre con gli spazi devono essere indicati con ":

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

@ Anders: Grazie per la risposta. Prevedo la tua risposta, ma Sivakg è colui che dà la risposta per prima. – karthik

+0

@karthik Beh, la sua risposta attuale è sbagliata, quelli di Exec non funzioneranno su tutti i sistemi ... – Anders

Problemi correlati