VerCompare

2つのバージョンの文字列を比較します。

Result := VerCompare(VersionA, VersionB)

パラメータ

VersionA

型:文字列

比較される最初のバージョン文字列。

VersionB

型:文字列

比較する2番目のバージョン文字列で、オプションで先頭に以下の演算子のいずれかを付ける:<, <=, >, >= or =.

戻り値

型:Integer (boolean) or Integer

VersionBが演算子記号で始まる場合、この関数は 1(真)または 0(偽)を返す。

そうでない場合、この関数は以下のいずれかを返し、VersionAVersionBの関係を示す:

2つの文字列間の特定の関係をチェックするには、結果を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文字列である必要はありません。

この関数はソートコールバックで使うことができる。

#Requires, 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の違いを1つ示す。

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

プレリリース版との比較を示す。

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

レンジチェックを実演。

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