我一直在寻找解决方案,但是还没有发现任何好的方法。我需要在powershell脚本中从命令ipconfig / all的输出中提取DNS服务器。提取此信息的最佳方法是什么?
示例:
<html>
<body>
no space between here ><svg height="100" width="100"><circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /></svg>< and here.
</body>
</html>
我需要选择2个IP的10.50.50.50和10.50.10.50。
答案 0 :(得分:1)
您可以像这样使用正则表达式:
"DNS Servers[ .]+:\s+(?<DNS1>\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)\s*(?<DNS2>\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)?"
本文提供了一些使用PowerShell中的正则表达式的示例: https://kevinmarquette.github.io/2017-07-31-Powershell-regex-regular-expression/
这可能会解决您的问题:
$result = ipconfig /all
$groups = [regex]::matches($result, "DNS Servers[ .]+:\s+(?<DNS1>\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)\s*(?<DNS2>\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?)?")[0].Groups
要获取第一个结果(DNS1),请使用$groups[1].Value
,第二个(DNS2)请使用$groups[2].Value
。结果如下:
$groups[1].Value -> 10.50.50.50
$groups[2].Value -> 10.50.10.50