如何从GAMADV-XTD3版本查询返回的PowerShell字符串中可靠提取版本号
可靠提取GAMADV-XTD3版本号的PowerShell方案
你原来用固定下标分割冒号提取版本的方式容易失效,是因为不同设备上的配置参数、路径等内容长度不同,冒号出现的总数量不固定,下标也会随之变化。推荐用正则匹配的方式精准提取,不受其他内容干扰:
提取版本号代码
# 执行GAM版本检查命令 $GamCheck = & C:\GAMADV-XTD3\gam.exe version checkrc # 提取当前使用版本号 $current = [regex]::Match($GamCheck, 'Current:\s*([0-9.]+)').Groups[1].Value # 提取最新可用版本号 $latest = [regex]::Match($GamCheck, 'Latest:\s*([0-9.]+)').Groups[1].Value # 可选:版本号有效性校验,避免后续下载出错 if (-not $latest) { Write-Error "无法获取最新版本号,更新终止" exit 1 }
方案优势
- 匹配逻辑只和
Current:、Latest:固定前缀绑定,不受返回结果中其他行的内容、格式变化影响 - 无需调整参数,适配所有设备的返回结果
提取得到的$latest变量可以直接用到你原有自动更新脚本中,无需修改后续下载安装逻辑。
内容的提问来源于stack exchange,提问作者dcaz
相关产品推荐
相关产品推荐

