VerCompare

对比两个版本字符串.

Result := VerCompare(VersionA, VersionB)

参数

VersionA

类型: 字符串

要比较的第一个版本字符串.

VersionB

类型: 字符串

要比较的第二个版本字符串, 可选地使用以下操作符之一作为前缀: <, <=, >, >==.

返回值

类型: 整数(布尔值)整数

如果 VersionB 以操作符符号开头, 则此函数返回 1(true) 或 0(false).

否则, 该函数返回以下值之一, 以指示 VersionAVersionB 之间的关系:

要检查两个字符串之间的特定关系, 请将结果与 0 比较. 例如:

a_less_than_b := VerCompare(a, b) < 0
a_greater_than_or_equal_to_b := VerCompare(a, b) >= 0

备注

版本字符串是按照与 #Requires 相同的规则进行比较的.

这个函数应该能够正确地比较 Semantic Versioning 2.0.0 版本字符串, 但是不要求参数是有效的 SemVer 字符串.

该函数可用于排序回调.

Sort, StrCompare

示例

检查正在使用的 AutoHotkey 的版本.

if VerCompare(A_AhkVersion, "2.0") < 0
    MsgBox "This version < 2.0; possibly a pre-release version."
else
    MsgBox "This version is 2.0 or later."

显示 VerCompare 和 StrCompare 之间的区别.

MsgBox VerCompare("1.20.0", "1.3")  ; 返回 1
MsgBox StrCompare("1.20.0", "1.3")  ; 返回 -1

示范预发布版本的比较.

MsgBox VerCompare("2.0-a137", "2.0-a136")  ; 返回 1
MsgBox VerCompare("2.0-a137", "2.0")  ; 返回 -1
MsgBox VerCompare("10.2-beta.3", "10.2.0")  ; 返回 -1

演示范围检查.

MsgBox VerCompare("2.0.1", ">=2.0") && VerCompare("2.0.1", "<2.1")  ; 返回 1