我希望根据命令输出中的'some string value'过滤结果。 例如,我需要从ipconfig的输出中获取MAC地址。 我试过了
ipconfig /all | Select-String -Pattern "Physical Address"
我正在获取所有MAC地址,如
Physical Address. . . . . . . . . : AA-AA-AA-AA-AA-AA
Physical Address. . . . . . . . . : AA-AA-AA-AA-AA-AA
我想只有wifi适配器的Mac地址。 SO输出将是AA-AA-AA-AA-AA-AA。 我不想要整行
Physical Address. . . . . . . . . : AA-AA-AA-AA-AA-AA
答案 0 :(得分:2)
这适用于我的系统:
$Wireless_Adapter_Regex =
@'
(?ms).+?Wireless LAN adapter .+?
Physical Address. . . . . . . . . : (\S+)
'@
(ipconfig /all | out-string) -match $Wireless_Adapter_Regex > $null
$matches[1]
C4-D9-87-41-37-F1
答案 1 :(得分:0)
您可以使用以下命令:
ipconfig /all | Select-String -Pattern "\w\w-\w\w-\w\w-\w\w-\w\w-\w\w" -AllMatches | % { $_.Matches } | % { $_.Value }
答案 2 :(得分:0)
ipconfig /all | Select-String -Pattern "Physical Address"
可以进一步扩展为通过':'分隔符拆分输出并显示第二个字段。示例如下。
PS C:\Users\jump> ipconfig /all | Select-String -SimpleMatch Physical
-AllMatches | ForEach-Object { $_.ToString().split(":")[1]}
B8-AC-6F-28-08-C5