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

如何在NSIS中使用If-Else比较两个变量?,nsis,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 "Smalle

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

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

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
StrCpy
中使用大写字母C。还可以尝试从数字中删除引号(
),使其成为整数

另一种方式是:

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
Push$first
按$Second
StrCpy$first 8
StrCpy$Second 2
IntCmp$第一个$第二个相等值1无值1更多
相等:
DetailPrint“$first=$Second”
转到终点
无价值:
详细信息打印“$first<$Second”
转到终点
Val1More:
DetailPrint“$first>$Second”
转到终点
完:
Pop$Second
流行乐$first

NSIS在基本指令中不支持浮点数,您需要使用默认安装的一部分…

是的,即使我也尝试了这个,但它仍然向我显示了相同的答案。他们还有其他方法在NSIS中比较两个数字吗?谢谢朋友。第二个答案很好。现在我可以比较两个整数。但当我推送浮点数时,它就会失败。你能告诉我如何比较两个浮点数吗?正如安德斯正确提到的,NSIS在基本指令中不支持浮点数好的。我可以使用VersionCompare来比较两个浮点数吗?我不这么认为。这不是
VersionCompare
的意图他被迫去工作
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