我似乎在其他地方找不到这个问题,但是,如何检索当前连接的无线网络的名称。如果有必要的话,我的程序的目标是从互联网上断开10秒,然后重新连接。这是我的密码:
@echo off
ipconfig /release
timeout /t 10 /nobreak
netsh wlan connect %Network%
我只需要得到我目前连接到的无线网络的确切名称,以适应%Network%
。我需要任何帮助。
我也是批次的初学者所以是的。
发布于 2017-08-09 15:24:48
要获取网络信息,请使用netsh wlan show interface
。您可以使用name=
进一步过滤接口。在输出中,SSID将在SSID
字段中,也可能在Profile
字段中,该字段可以用findstr
提取。然后,可以使用for /f
将数据读入变量中。
for /f "delims=: tokens=2" %%n in ('netsh wlan show interface name="Wi-Fi" ^| findstr "SSID"') do set "Network=%%n"
set "Network=%Network:~1%"
最后一行用于使用可变子串删除第一个空格字符。
当然,这假设您只有一个WLAN适配器。如果你有不止一个,那么事情就更复杂了,你有几个选择。
另一种选择是使用
netsh wlan show networks interface="Wi-Fi" mode=ssid
发布于 2017-08-09 06:54:57
取自这个答案并修改:
正如您可以在链接答案中找到的那样,获取所需信息的一般命令是wmic nic where "NetConnectionStatus=2" get NetConnectionID
。使用| more +1
,您可以传递仅显示在wmic-命令中的标题。
要将其放入变量,您需要使用for /f
解析该命令的输出。
for /f %%n in ('wmic nic where "NetConnectionStatus=2" get NetConnectionID ^| more +1') do (
set "Network=%%n"
goto outer
)
:outer
我使用goto在第一次迭代中退出循环,并且只使用它来解析第一行。由于命令的输出包含一些空行,如果标签不存在,这将给您留下一个空变量。
https://stackoverflow.com/questions/45581328
复制相似问题