我有这个NETSH命令(下面)设置为一个变量,%connectionname%,我需要使用它从互联网断开连接,然后再稍后重新连接到互联网。
set %connectionname%=NETSH WLAN SHOW INTERFACE | findstr /r "^....SSID"`
它显示,从互联网断开后,变量是空白的,我不知道为什么,有人能帮我弄清楚为什么这不是显示?
不能使用该语法将变量设置为命令的输出。您应该使用FOR/F命令,在in()子句中将命令括在单引号中,以表示您想要执行命令。
我假设您想要变量中的值,而不是SSID标签。因此需要将FOR/F分隔符设置为冒号和空格,并将令牌设置为2。此外,只有在希望展开值时,才能将变量名以百分比括起来。当您想要设置变量时,不能使用百分比。
下面是可以从命令行运行的完整命令:
for /f "tokens=2 delims=: " %A in ('netsh wlan show interface ^| findstr "^....SSID"') do set "connectionname=%A"
如果要在批处理文件中包含该命令,则必须将百分比加倍:%A
变为%%A
。
在命令提示符中输入HELP FOR
或FOR /?
以获取有关如何使用for/f的更多信息