NSIS 多个 if 条件
NSIS multiple if conditions
我可以在 NSIS 脚本中实现以下 C 代码吗?
C代码
if ( (value1 == 1) && ((value2 == "text") || (value3 >= 100)) )
//Do something
NSIS代码
${If} $value2 == "text"
${OrIf} $value3 >= 100
但我不认为在上述条件下我可以添加另一个 ${AndIf}
声明。相反,我需要执行以下操作:
${If} $value1 == 1
${If} $value2 == "text"
${OrIf} $value3 >= 100
//Condition success
${EndIf}
${Else}
//Conditon failed
${EndIf}
我说的对吗?有什么更好的方法吗?
将 ${OrIf}
和 ${AndIf}
组合在一个语句中会得到未定义的结果,您需要嵌套 if 语句。我不知道有什么更好的方法...
;以防工作示例对任何人有帮助。
!include LogicLib.nsh
Section testSec
Var /GLOBAL equalsFive
StrCpy $equalsFive 5
Var /GLOBAL equalsSix
StrCpy $equalsSix 6
Var /GLOBAL equalsSeven
StrCpy $equalsSeven 7
${If} $equalsFive = 5
${AndIf} $equalsSix = 8
${OrIf} $equalsSeven = 7
DetailPrint "OrIf Works"
${EndIf}
SectionEnd
strcmp $value1 1 0 Error
strcmp $value2 'Text' 0 Error
strcmp $value3 100 Do Do
试试这个代码
${If} $value1 == 1
${AndIf} $value2 == "text" ;useAndif
${OrIf} $value3 >= 100
//Condition success
${EndIf}
${Else}
//Conditon failed
${EndIf}
我可以在 NSIS 脚本中实现以下 C 代码吗?
C代码
if ( (value1 == 1) && ((value2 == "text") || (value3 >= 100)) )
//Do something
NSIS代码
${If} $value2 == "text"
${OrIf} $value3 >= 100
但我不认为在上述条件下我可以添加另一个 ${AndIf}
声明。相反,我需要执行以下操作:
${If} $value1 == 1
${If} $value2 == "text"
${OrIf} $value3 >= 100
//Condition success
${EndIf}
${Else}
//Conditon failed
${EndIf}
我说的对吗?有什么更好的方法吗?
将 ${OrIf}
和 ${AndIf}
组合在一个语句中会得到未定义的结果,您需要嵌套 if 语句。我不知道有什么更好的方法...
;以防工作示例对任何人有帮助。
!include LogicLib.nsh
Section testSec
Var /GLOBAL equalsFive
StrCpy $equalsFive 5
Var /GLOBAL equalsSix
StrCpy $equalsSix 6
Var /GLOBAL equalsSeven
StrCpy $equalsSeven 7
${If} $equalsFive = 5
${AndIf} $equalsSix = 8
${OrIf} $equalsSeven = 7
DetailPrint "OrIf Works"
${EndIf}
SectionEnd
strcmp $value1 1 0 Error
strcmp $value2 'Text' 0 Error
strcmp $value3 100 Do Do
试试这个代码
${If} $value1 == 1
${AndIf} $value2 == "text" ;useAndif
${OrIf} $value3 >= 100
//Condition success
${EndIf}
${Else}
//Conditon failed
${EndIf}