如何在PowerShell中判断命令输出匹配字符串并返回布尔结果
PowerShell 判断命令输出是否包含指定字符串的实现方法
你描述的场景可以直接使用PowerShell内置的集合运算符快速实现,不需要额外写复杂的判断逻辑:
方案1:完全匹配判断(适配你当前需求)
你的示例命令返回的是交换机名称的字符串集合,直接用-contains运算符判断是否包含完全匹配的「LINK」字符串即可,执行后会直接返回布尔值:
(Get-VMNetworkAdapter -ManagementOS | Select-Object -ExpandProperty SwitchName) -contains 'LINK'
对应你给出的示例输出,上述命令执行后会直接返回
True,如果没有匹配到对应字符串则返回False。
方案2:模糊匹配判断(适用于部分匹配场景)
如果不需要完全匹配,只要输出内容中存在「LINK」片段就返回真,可以用-match运算符:
(Get-VMNetworkAdapter -ManagementOS | Select-Object -ExpandProperty SwitchName) -match 'LINK'
补充:获取0/1类型返回值的方法
如果你需要数字类型的返回值而非布尔值,直接将判断结果转为int类型即可:
[int]((Get-VMNetworkAdapter -ManagementOS | Select-Object -ExpandProperty SwitchName) -contains 'LINK')
存在匹配时返回
1,不存在匹配时返回0。
内容的提问来源于stack exchange,提问作者Will Roberts
相关产品推荐
相关产品推荐

