将 Inno Setup 预处理器 #define 与其他 #define 结合起来[重复]

问题描述 投票:0回答:1

我有一个 Inno Setup 脚本。

在此 Inno Setup 脚本中有一个

#define
,称为
InstallParameters
。 这是程序的命令行参数所在的位置。 命令行参数可以是四个标志中的任意一个:
/v
/i
/a
/c
,后跟参数。 例如,这里是
InstallParameters
的平均输入:

#define InstallParameters "/v Local Area Connection /i 111.11.11.11"

或者:

#define InstallParameters "/a Device Name /c Customer Name"

或者:

#define InstallParameters "/v Local Area Connection /i 111.11.11.11 /a Device Name /c Customer Name"

或者标志后跟参数的任意组合。

我想做的是将四个参数本身变成变量,即

#define
的合并。

这是我的理想(请注意,用于组合

#define
的语法完全是虚构的):

#define Connection "/v Local Area Connection"
#define IPaddress "/i 1.1.1.1"
#define DeviceName "/a Device Name"
#define CustName "/c Customer"

#define InstallParameters "{#Connection} {#IPaddress} {#DeviceName} {#CustName}"

唉,我尝试过的盲目尝试都没有奏效(不过其中一些可以编译,这很好)。

老实说,我不知道这是一个 Pascal 的东西还是 Inno Setup script 的东西。 我在谷歌上的尝试没有带来任何有价值的结果,因为我对这两种语言/脚本都没有足够的了解来提出有价值的查询。

有谁知道这种事情——

#define
的合并——是否可能? 如果是的话,该怎么做?

macros installation inno-setup
1个回答
7
投票

#define
指令后面可以跟一个类似C的表达式。

在表达式中,您可以使用

+
运算符来连接字符串(在 C 中实际上不能使用):

#define InstallParameters Connection + " " + IPaddress + " " + DeviceName + " " + CustName

另请参阅Inno Setup 预处理器:表达式语法。虽然它只是部分有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.