如何使用 Inno Setup 在预处理器函数中使用预处理器变量

How to use a preprocessor variable within a preprocessor function with Inno Setup

我尝试 运行 使用 Exec() 预处理器函数的 PowerShell 脚本,但我需要向它传递两个参数。我怎样才能做到这一点?以下代码段无效。

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

谢谢!

使用 + 运算符,就像您已经在 PSScriptConfigPath 声明中使用它一样。

此外,Exec function 需要单独的参数。

其他:
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))