如何在PowerShell中按版本号排序目录并获取最新构建版本
PowerShell版本号排序逻辑修复方案
错误原因
你当前的排序逻辑没有先去除文件名中的TEST_前缀就尝试转换为[version]类型,类型转换失败后,Sort-Object会默认按照字符串字典序排序,才会出现6.6.80.10排在6.6.80.6之后的不符合版本号规则的情况。
修复后代码
$Directory = 'C:\Test' $Latest = (Get-ChildItem -Path $Directory -File).Name | Sort-Object { [version]($_.Split('_')[1]) } | Select-Object -Last 1
逻辑说明
- 给
Get-ChildItem增加-File参数,避免误匹配到同命名格式的文件夹 - 用
$_.Split('_')[1]按下划线拆分文件名字符串,提取出后半段纯版本号内容后再转换为[version]类型作为排序依据 - 排序后取最后一位即可得到最新的构建版本
TEST_6.6.80.16
内容的提问来源于stack exchange,提问作者user16908085
相关产品推荐
相关产品推荐

