如何使用 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})")
谢谢!
使用 +
运算符,就像您已经在 PSScript
和 ConfigPath
声明中使用它一样。
此外,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))
我尝试 运行 使用 Exec()
预处理器函数的 PowerShell 脚本,但我需要向它传递两个参数。我怎样才能做到这一点?以下代码段无效。
#define PSScript SourcePath + "\UpdateJson.ps1"
#define ConfigPath SourcePath + "\ClientConfig.json"
#expr Exec("PowerShell -NoProfile -ExecutionPolicy Bypass -File {#PSScript} {#ConfigPath} Str({#BuildNumber})")
谢谢!
使用 +
运算符,就像您已经在 PSScript
和 ConfigPath
声明中使用它一样。
此外,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))