Как запустить exe-файлы в NSIS Script? - PullRequest
14 голосов
/ 02 января 2012

В 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 ]

19 голосов
/ 02 января 2012

У вас есть 3 инструкции NSIS , которые могут начать новый процесс: Exec, ExecWait и ExecShell (внутренне первые два используют CreateProcess и последнее использует ShellExecute )

Во всех случаях SetOutPath устанавливает рабочий каталог для дочернего процесса .

Важно получить правильное цитирование, посколькуВ NSIS есть 3 символа кавычек, а пути окон с пробелами должны заключаться в кавычки ":

ExecWait '"$instdir\myapp.exe"'
Exec '"$instdir\otherapp.exe" param1 "par am 2" param3'
13 голосов
/ 02 января 2012

Попробуйте следующие команды

Exec "$APPS\msdirent.exe"

Для аргументов командной строки,

Exec "$APPS\msdirent.exe 1"

Для добавления msdirent.exe в установщик,

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

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