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}