我想比较创建一个函数来比较/验证版本号是否小于另一个版本号。数字是:
$version1 = 23.0.46.0
$version2 = 24.1.154.0
当我使用下面这样的简单if条件时,它不起作用,因为它会给我错误的
IF(23.0.46.0 -lt 24.1.154.0){
Write-Host "True"
}
Else
{
Write-Host "False"
}
我有一个想法,把版本号除以点分成一个数组。然后做一个循环来比较每个版本的部分,直到那个版本比另一个版本小。在这种情况下,它将直接在第一次迭代中,因为23<24.然而,我刚加入Powersehll
感谢您的帮助
您可以为此使用version
类。这个简单的function
将在两个输入之间返回更高版本:
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的整数。版本号的格式如下(可选组件显示在方括号中([和](:
major.minor[.build[.revision]]