C++ 使用批处理,如何确定您是否连接到WiFi网络?

C++ 使用批处理,如何确定您是否连接到WiFi网络?,c++,batch-file,networking,C++,Batch File,Networking,使用netsh wlan connect name=“your network\u name”可以请求连接到WiFi网络,但无法确定是否已连接 那么,在批处理中,检查我是否连接到WiFi网络的命令行是什么?(WiFi网络可能有网络接入,也可能没有网络接入。)【它也应该适用于移动热点】 如果已连接,则应显示YES 如果未连接,则应显示NO 因为我想根据得到的结果运行一个循环 所以有人能写出好的工作批处理程序!!和c++(如果可能的话) 我所尝试的: WMIC /node: ”PutYourPCNa

使用
netsh wlan connect name=“your network\u name”
可以请求连接到WiFi网络,但无法确定是否已连接

那么,在批处理中,检查我是否连接到WiFi网络的命令行是什么?(WiFi网络可能有网络接入,也可能没有网络接入。)【它也应该适用于移动热点】

如果已连接,则应显示
YES

如果未连接,则应显示
NO

因为我想根据得到的结果运行一个循环

所以有人能写出好的工作批处理程序!!和c++(如果可能的话)

我所尝试的:

WMIC /node: ”PutYourPCNameHere” path WIN32_NetworkAdapter where (NetConnectionID="Wi-Fi") get NetConnectionStatus
但我们不能把if循环。所以我不知道如何继续

但这在移动热点(没有互联网)上是行不通的

是两种状态的输出,连接和未连接

因此,测试输出中是否出现
信号
,即是否连接

C:\Windows\system32>netsh wlan show interfaces | Findstr /c:"Signal" && Echo Online || Echo Offline
Offline

C:\Windows\system32>netsh wlan show interfaces | Findstr /c:"Signal" && Echo Online || Echo Offline
    Signal                 : 93%
Online
&&
|
if
命令的简写形式


请参阅此处的my CMD备忘表

NetSh wlan show interfaces
显示您所连接的内容。请参见
netsh wlan show/?
。但是我不能使用if条件,兄弟。“那么有人可以编写好的工作批处理程序!!和c++(如果可能的话)”-所以不是编码服务。显示您已经尝试了什么,以及您到底遇到了什么困难(目前,您的问题只涉及bash,而不是c++),这里的其他人都可以。您可以使用
For/f
循环逐行进行分析。您可以使用
Findstr
If
。如果您想知道netsh是如何实现的,那么请在记事本中打开它并查看它调用的函数。它加载Netshell.dll并使用我添加的@Torbjörn上的WlanOpenHandle、WlanQueryInterface、wlanfreemory、WlanCloseHandle、WlanHostedNetworkQueryProperty等wlan函数!我试过了,太棒了!兄弟!有用处!但是为什么不使用:netsh wlan show interfaces | Findstr/c:“connected”&&Echo Online | | Echo offline我在输出中的任何地方都看不到connected这个词。(它在
断开连接
)。明白了,兄弟!非常感谢!如果我需要帮助,有没有办法联系我?在这里发帖。我终于在输出中找到了连接。嘿,兄弟,需要帮助。
C:\Windows\system32>netsh wlan show interfaces

There is 1 interface on the system:

    Name                   : Wi-Fi
    Description            : Realtek RTL8723BE 802.11 b/g/n Wi-Fi Adapter
    GUID                   : 6383a702-c44d-465e-8f5d-e7b3bc52b300
    Physical address       : 18:4f:32:35:3b:1d
    State                  : connected
    SSID                   : OptusWiFi E5331 0afa
    BSSID                  : d0:7a:b5:8a:0a:fa
    Network type           : Infrastructure
    Radio type             : 802.11n
    Authentication         : WPA2-Personal
    Cipher                 : CCMP
    Connection mode        : Profile
    Channel                : 6
    Receive rate (Mbps)    : 72
    Transmit rate (Mbps)   : 72
    Signal                 : 93%
    Profile                : OptusWiFi E5331 0afa

    Hosted network status  : Not available


C:\Windows\system32>netsh wlan show interfaces

There is 1 interface on the system:

    Name                   : Wi-Fi
    Description            : Realtek RTL8723BE 802.11 b/g/n Wi-Fi Adapter
    GUID                   : 6383a702-c44d-465e-8f5d-e7b3bc52b300
    Physical address       : 18:4f:32:35:3b:1d
    State                  : disconnected
    Radio status           : Hardware On
                             Software Off

    Hosted network status  : Not available
C:\Windows\system32>netsh wlan show interfaces | Findstr /c:"Signal" && Echo Online || Echo Offline
Offline

C:\Windows\system32>netsh wlan show interfaces | Findstr /c:"Signal" && Echo Online || Echo Offline
    Signal                 : 93%
Online