我正在尝试解析netsh winhttp show proxy
的输出,以确保我的脚本应用了正确的代理设置。首先,这是命令的预期输出:
Current WinHTTP proxy settings:
Proxy Server(s) : proxy.website.com:8080
Bypass List : *.example1.com;*.sample-site.com;
下面是我正在做的事情的简化版本。if语句在应该为真的时候计算为false(我知道在运行之前代理设置是正确的)。我怀疑在-like
运算符中使用多个通配符的方式有问题,因为只在$ProxyServer
或$BypassListEscaped
自己的工作中计算,但我不确定。有什么想法吗?谢谢!
$NetshOutput = (netsh winhttp show proxy)
$ProxyServer = "proxy.website.com:8080"
$ProxyBypass = "*.example1.com;*.sample-site.com;"
$BypassListEscaped = $ProxyBypass.Replace("*", "``*").Replace("`"", "")
if ($NetshOutput -like "*$ProxyServer*$BypassListEscaped*"){
Write-Host "correct"
}else{
Write-Host "incorrect"
}
2条答案
按热度按时间fcg9iug31#
netsh
命令的输出是一个字符串数组,您需要在比较之前将该数组转换为单个字符串。您也可以使用WildcardPattern.Escape
method来转义通配符。ddarikpa2#
试试这个:
$output = netsh winhttp show proxy $output -like“Proxy Server:”-and$output -like“”