我想比較創建一個函式來比較/驗證一個版本號是否小于另一個版本號。數字是:
$version1 = 23.0.46.0
$version2 = 24.1.154.0
當我使用像下面這樣的簡單 if 條件時,它不起作用,因為它給了我 False
IF(23.0.46.0 -lt 24.1.154.0){
Write-Host "True"
}
Else
{
Write-Host "False"
}
我的想法是將版本號按點拆分成一個陣列。然后做一個回圈來比較每個版本的部分,直到一個小于另一個。在這種情況下,它將直接在第一次迭代中,因為 23<24。但是我剛在 Powersehll
謝謝您的幫助
uj5u.com熱心網友回復:
您可以version為此使用該類。這個簡單function將回傳 2 個輸入之間的更高版本:
function Compare-Version {
param(
[version]$a,
[version]$b
)
($a, $b)[$a -lt $b]
}
Compare-Version '25.0.46.0' '25.1.154.0'
Major Minor Build Revision
----- ----- ----- --------
25 1 154 0
請注意,要使輸入有效,它必須符合版本語法。
來自官方檔案的備注:
版本號由兩到四個部分組成:主要、次要、構建和修訂。需要主要和次要組件;構建和修訂組件是可選的,但如果定義了修訂組件,則構建組件是必需的。所有定義的組件必須是大于等于0的整數。版本號格式如下(可選組件用方括號([和])表示):
主要.次要[.build[.revision]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/381809.html
