如何在Windows下通过cmd检查pppoe是否已经连接?

如何在Windows下通过cmd检查pppoe是否已经连接?

我已经完成了自动 wifi 连接,然后连接 pppoe,因为我已经安排脚本每 5 分钟运行一次,所以如果脚本已经连接,它会在运行时断开我的 wifi。!我希望能够像脚本运行时一样,它会首先检查 PC 是否连接到特定的 wlan 配置文件名称,然后检查 pppoe 是否已连接,如果 pppoe 已连接,如果 pppoe 已连接,那么它会 ping 一个站点以确认互联网是否可用,如果互联网可用,那么它将离开它,否则,如果 wifi 未连接,那么它会重复相同的过程,如脚本中所示:

netsh wlan connect name=Fursan-WIFI-03049815768
rasdial MikroTik_PPPoE admin thedarkforce 
rasdial MikroTik_PPPoE /d
rasdial MikroTik_PPPoE admin thedarkforce 

我认为我可以将其作为 if 循环来执行,但我不确定如何在 Windows 中编写循环脚本。我该怎么做?

答案1

您可以在它之前添加一个 PING 测试。我不知道它有多可靠,但肯定比不管怎样直接调用它更可靠:

set ipToTest=8.8.8.8
ping -n 1 %ipToTest% | find "TTL"
if %errorlevel% == 1 (
    netsh wlan connect name=Fursan-WIFI-03049815768
    if %errorlevel% == 1 (
        netsh wlan connect name=DIFFERENT_NETWORK_HERE
    )
    rasdial MikroTik_PPPoE admin thedarkforce 
    rasdial MikroTik_PPPoE /d
    rasdial MikroTik_PPPoE admin thedarkforce 
)

使用 Google 的 DNS 作为测试,但您可以将其更改为您想要的任何 IP。这只会在 PING 因某种原因失败时运行您的命令。

就我个人而言,我认为这不是一个很好的解决方案,您的连接不应该经常掉线,所以才需要这样做。听起来像是某个地方的某个东西可能需要更换或修复,这只是一个权宜之计,虽然这种改变不是每 5 分钟一次,但如果您正在流式传输或下载,可能会给您带来问题。

相关内容