2010-06-04 2 views
3

Из сценария NSIS (находится в C:\nsis\, например), я выполнить внешнюю программу (скажем something.bat) с некоторыми paramerters:«Exec» в определенную папку

Exec '"Z:\draft\something.bat" $param1 $param2' 

something.bat является suppoed переименовать каталог C:\nsis , Мой вопрос: как я могу сообщить Exec для запуска something.bat внутри Z:\draft\, а не C:\nsis\? Потому что он не может переименовать каталог в противном случае.

Спасибо.

ответ

2

Вы можете использовать SetOutPath для установки текущего рабочего каталога. Я думаю, это должно делать то, что вы хотите.

В документации NSIS вы также можете увидеть, что она использует переменную, которая устанавливает SetOutPath (которая равна $OUTDIR) для операторов Exec.

4.9.1.2 Exec

Exec команда
Выполнить указанную программу и немедленно продолжить. Примечание , что указанный файл должен существовать на целевой системе, а не на компиляционной системе . $ OUTDIR используется для рабочего каталога .

+0

Отлично! 'SetOuPath' выполнил эту работу. В следующий раз я буду внимательно читать руководство :) – Anonymous

+1

@moz: Нет проблем, это немного не интуитивно понятно, либо вы это знаете, либо не знаете :) –

Смежные вопросы