如何提取PowerShell中winget输出的VLC应用版本号
提取Winget搜索结果中的VLC版本号
方法1:用JSON格式解析(最靠谱)
Winget支持输出JSON格式,直接结构化提取版本号,不用折腾字符串分割:
# 拉取JSON格式结果并转成PowerShell对象 $vlcInfo = winget search --exact VideoLAN.VLC --source winget --format json | ConvertFrom-Json # 直接取版本号字段 $vlcVersion = $vlcInfo.Version # 输出结果 Write-Host $vlcVersion
这种方法不受输出列宽、空格数量变化的影响,是最稳定的方案。
方法2:基于现有字符串逻辑调整
如果不想改输出格式,对过滤后的行做分割处理就行:
$VLCVersion = winget search --exact VideoLAN.VLC --source winget foreach ($line in $VLCVersion) { if ($line -match "^VLC") { # 用正则匹配开头是VLC的行,比-like更精准 # 按连续空格分割成数组,取最后一个元素就是版本号 $version = ($line -split '\s+')[-1] Write-Host $version } }
原来的-like "VLC"容易匹配到包含VLC的其他行(比如表头里的Version),用-match "^VLC"只匹配以VLC开头的结果行更准确。
内容的提问来源于stack exchange,提问作者Marius van Deventer
相关产品推荐
相关产品推荐

