Как использовать переменную препроцессора в функции препроцессора с Inno Setup - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь запустить скрипт PowerShell, используя функцию препроцессора Exec(), но мне нужно передать ему два аргумента. Как я могу это сделать? Следующий фрагмент не работает.

#define PSScript  SourcePath + "\\UpdateJson.ps1"
#define ConfigPath  SourcePath + "\\ClientConfig.json"
#expr Exec("PowerShell -NoProfile -ExecutionPolicy Bypass -File {#PSScript} {#ConfigPath} Str({#BuildNumber})")

Спасибо!

1 Ответ

1 голос
/ 21 февраля 2020

Используйте оператор +, так же, как вы уже используете его в своих объявлениях PSScript и ConfigPath.

Кроме того, функция Exec нуждается в аргументах по отдельности.

Прочее:
1) Необходимо заключить пути в двойные кавычки, если они содержат пробелы.
2) По умолчанию препроцессору Inno Setup не требуется экранирование обратной косой черты.

#define PSScript  SourcePath + "\UpdateJson.ps1"
#define ConfigPath  SourcePath + "\ClientConfig.json"

#expr Exec("PowerShell", \
           "-NoProfile -ExecutionPolicy Bypass -File """ + PSScript + """ " + \
               """" + ConfigPath + """ " + Str(BuildNumber))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...