[英]NSIS: How to use the preporcessor or
我想要这样的东西
!if (${Flag} == 5) || (${Flag} == 7)
...
!endif
但是我收到错误消息!if expects 1-4 parameters, got 7. Usage: !if [!] value [(==,!=,<=,<,>,>=,&&,||) value2] [...]
。 我试过大括号,但无济于事。 文档中提到||
允许使用。
我也找到了解决方案
!macro test
...
!macroend
!if ${Flag} == 5
!insertmacro test
!else if ${Flag} == 7
!insertmacro test
!endif
但是此解决方案非常麻烦,然后||
导致什么呢? ?
!if
不支持多个表达式,它支持1或3个参数(不计算!
前缀)。 ||
只是一个布尔表达式( OR
),其中至少一个参数必须计算为true:
!if ${Foo} || ${Bar}
...
!endif
多个表达式必须一个一地求值:
!if ${Flag} = 5
!insertmacro DoSomething
!else if ${Flag} = 7
!insertmacro DoSomething
!endif
我忘记了引号。 但是,错误消息不是很有帮助。
这是解决方案
!if "${Flag} == 5" || "${Flag} == 7"
...
!endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.