2013-04-28 106 views
1

我有这个NETSH命令(下面)设置为变量,%连接名%,我需要稍后使用它断开与互联网的连接,然后再次再次重新连接到互联网。显示NETSH命令

set %connectionname%=NETSH WLAN SHOW INTERFACE | findstr /r "^....SSID"` 

它表明变量从互联网上断开后是空白,我不知道为什么, 有人能帮助我弄清楚为什么这个心不是显示?

回答

1

您不能使用该语法将变量设置为命令的输出。您应该使用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 FORFOR /?以获取有关如何使用FOR/F的更多信息。

+0

感谢我仍然newb地位的任何先进的,谢谢你的帮助,谢谢我不知道你不能设置一个变量使用该语法命令的输出,所以谢谢。 – CodeKeyer 2013-05-27 17:32:38

+0

嘿,我刚刚测试了代码,它找到了我的确切SSID并将其设置为变量。现在,我可以自动断开连接并完全重新连接到互联网。谢谢! – CodeKeyer 2013-05-27 17:50:15

+0

@CodeKeyer - 不要忘记接受解决问题的好答案。点击答案左上角附近的复选标记。该行动让别人知道你的问题已经得到解答,它会授予你2个声望点,并授予答案海报15个重点。每个答案只能接受一个问题。一旦您达到15个重要点,您就有权投票回答任何问题和答案。投票的问题给予提问者5分,投票答案为10分。您可以投票选出最有用的答案。 – dbenham 2013-05-27 18:38:18