我想编写一个 Powershell 脚本,每次运行时充当连接到互联网的开关。我写了这个,它有效:
$isconnected = netsh wlan show interfaces | select-string SSID | Out-String
if($isconnected.length -eq 0)
{
netsh wlan connect "My Network Name"
}
else
{
netsh wlan disconnect
}
但我不确定是否存在可能失败的情况。我想到的一个情况是,每当计算机处于一个新网络上时,而该网络的名称未在脚本中指定。有没有办法绕过指定网络名称?有没有更好的方法来做到这一点?
答案1
答案2
我想到的是,每当计算机处于新网络上时,脚本中未指定其名称。有没有什么方法可以绕过指定网络名称?
您可以通过将输出传输到管道select-string
并select-object
选择输出的第一行来动态获取网络名称。然后删除其名称前的所有字符。
$network = $isconnected -replace '.*: ',''
您的代码将如下所示:
$isconnected = netsh wlan show interfaces | select-string SSID | select-object -First 1 | Out-String
if($isconnected.length -eq 0)
{
$network = $isconnected -replace '.*: ',''
netsh wlan connect $network
}
else
{
netsh wlan disconnect
}