【发布时间】:2017-05-25 04:45:24
【问题描述】:
我必须比较当前文件的版本和已经安装在 NSIS 安装程序中的版本。我知道版本号是字符串,但我在几个地方读到 NSIS 会在逻辑操作中需要时自动将字符串转换为整数。
仅出于测试目的,我编写了以下脚本:
Var Test1
Var Test2
section
StrCpy $Test1 "4.3.1.50245"
StrCpy $Test2 "4.2.1.50245"
${If} $Test1 > $Test2
MessageBox MB_ICONSTOP "$Test1 is bigger than $Test2"
${Else}
MessageBox MB_ICONSTOP "$Test2 is bigger than $Test1"
${EndIf}
Quit
sectionEnd
问题:它给我的结果是4.2.1.50245 比4.3.1.50245 更好。但是,如果我尝试将 4.2.1.50245 与 3.2.1.50245 进行比较(或者如果我比较 50245 和 40256 等),它会给我正确的结果
【问题讨论】:
-
Skm,以下是否回答了您的问题,还是您需要进一步的帮助?
-
对不起,我没有机会检查它。我会在检查后更新(可能在星期一)。谢谢:)
-
您说它给您的结果是 4.2.1.50245 大于 4.3.1.50245,但实际上它是在说“大于或等于”,因为您没有相等的选项。它认为它们是相等的,因为当它将字符串转换为整数时,它们都变为 4。
标签: nsis