创新安装参数与在[RUN]部分引号(Inno Setup parameter with quotes

2019-08-19 15:22发布

我用[运行]部分以修改与commandmerit.exe支持命令行某些编解码器的品质值。

所以,语法是:

Commandmerit.exe "{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}" "0x800000"  

{E2B7DF46-38C5-11D5-91F6-00104BDB8FF9}是编解码器的CLSID和0x800000是新的优点的价值,但是当我把在这一行[run]部分:

Filename: "{app}\Commandmerit.exe"; Parameters: ""{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000""; WorkingDir: "{app}"

显示流动性错误:

在参数不匹配或错位quates。

如果我把这个行:

Filename: "{app}\Commandmerit.exe"; Parameters: """{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}" "0x10000000"""; WorkingDir: "{app}"

显示流动性错误:

未知常量......使用两个连续的“{”如果.....

如果我把这个行:

Filename: "{app}\Commandmerit.exe"; Parameters: """{{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}}" "0x10000000"""; WorkingDir: "{app}"

然后,未显示任何错误,但它似乎commandmerite.exe不懂的参数,因此安装完成后的优点依然不变

Answer 1:

要报价添加到参数,必须在每个报价翻倍,然后把周围的整个价值的报价。

你的第二次尝试接近,但你忘了中间的。

Filename: "{app}\Commandmerit.exe"; Parameters: """{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD}"" ""0x10000000"""; WorkingDir: "{app}"


Answer 2:

我可以看到你的问题,有两种不同的东西。

首先,是{在创新安装有特殊的意义,因为它是一个不变的开始。 所以,你有逃跑{加倍它,例如{{ 有没有必要,因为它被视为一个常量的末尾,只有当它是针对不断开始逃离右括号。

其次,是你想传递"作为字符串的一部分,但似乎在这种情况下没有必要的,因为目的"中的命令行参数的字符是允许一个单一的参数中使用空格的,但没有你的参数中有空格。

说了这么多,你必须尝试这样写你的命令:

[run]
Filename: "{app}\Commandmerit.exe"; Parameters: {{F8FC6C1F-DE81-41A8-90FF-0316FDD439FD} 0x10000000; WorkingDir: "{app}"


文章来源: Inno Setup parameter with quotes in [RUN] section