如何在NSIS中使用If Else比较两个变量?

时间:2016-02-05 11:02:13

标签: nsis

Var first
Var second
Section
   Strcpy $first "1.0"
   Strcpy $Second "2.1"
   ${If} $second > $first
     MessageBox MB_OK "Grater"
   ${Else}
     MessageBox MB_OK "Smaller"
   ${EndIf}
SectionEnd

我已经编写了上面的代码,但它显示的结果更小。以及如何将来自文本文件的整数或双精度值与预定义的双精度值或整数值进行比较?

2 个答案:

答案 0 :(得分:4)

使用LogicLib,您可以比较两个这样的整数:

Var first
Var second
Section
   StrCpy $first 1
   StrCpy $Second 2
   ${If} $second > $first
     MessageBox MB_OK "Grater"
   ${Else}
     MessageBox MB_OK "Smaller"
   ${EndIf}
SectionEnd

StrCpy中的资本 C 。同时尝试从数字中删除引号(")以使它们成为整数。

另一种方式是:

Push $first
Push $Second
StrCpy $first 8
StrCpy $Second 2

IntCmp $first $Second Equal Val1Less Val1More

Equal:
    DetailPrint "$first = $Second"
    Goto End
Val1Less:
    DetailPrint "$first < $Second"
    Goto End
Val1More:
    DetailPrint "$first > $Second"
    Goto End
End:

Pop $Second
Pop $first

答案 1 :(得分:1)

NSIS不支持基本指令中的浮点数,您需要使用属于默认安装的Math plugin ...