NSIS基础出错了

时间:2015-01-23 12:10:30

标签: nsis

所以这是一个非常基本的问题,但我似乎无法找到我做错的事情。

因此,我正在摆弄NSIS中的定义并且它没有像我期望的那样工作,因此我将问题缩小到最小的部分,我仍然无法按照我的预期使其工作。

脚本如下所示:

!ifndef b
!define b ""
!endif

!if $b=="b"
!define a "b"
!else
!define a "c"
!endif

Section
    MessageBox MB_OK "a: ${a} b: ${b}"
SectionEnd

我使用标记/Db=b运行它。

输出仍然是:

a: "c" b: "b"

我在这里错过了一些微不足道的事情!

1 个答案:

答案 0 :(得分:2)

b是定义,而不是变量:

!ifndef b
!define b ""
!endif

!if "${b}" == "b"    # <-- Modify this line.
!define a "b"
!else
!define a "c"
!endif

Section
    MessageBox MB_OK "a: ${a} b: ${b}"
SectionEnd

此外,我建议您在使用if时引用所有内容,因为如果define(或变量值)为空,它会发出错误。