【问题标题】:Display NETSH Command显示 NETSH 命令
【发布时间】:2013-04-21 22:04:56
【问题描述】:

我将此 NETSH 命令(如下)设置为变量 %connectionname%,我需要稍后使用它来断开与 Internet 的连接,然后再使用它重新连接到 Internet。

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

断开网络后显示变量为空,我不知道为什么, 有人可以帮我弄清楚为什么不显示吗?

【问题讨论】:

    标签: variables findstr netsh ssid


    【解决方案1】:

    您不能使用该语法将变量设置为命令的输出。您应该使用 FOR /F 命令,在 IN() 子句中将该命令用单引号括起来,以向 FOR 发出您想要执行命令的信号。

    我假设您想要变量中的值,而不是 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 的更多信息。

    【讨论】:

    • 感谢我仍然处于任何高级的新手状态,所以感谢您的帮助,感谢我不知道您无法使用该语法将变量设置为命令的输出,所以谢谢。
    • 嘿,我刚刚测试了代码,它找到了我的确切 SSID 并将其设置为变量。现在我可以在我的批处理中自动断开和重新连接互联网,完美。谢谢!
    • @CodeKeyer - 不要忘记接受一个可以解决您问题的好答案。单击答案左上角附近的复选标记。该操作让其他人知道您的问题已得到解答,它会授予您 2 点声望点,并授予答案发布者 15 点声望点。每个答案只能接受一个问题。一旦达到 15 个代表点,您就有权投票支持任意数量的问题和答案。提问者获得 5 分,回答者获得 10 分。您可以对任何您认为有用的答案进行投票。
    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多