Я выполнил автоматическое подключение к Wi-Fi, а затем подключил PPPoE, так как я запланировал запуск скрипта каждые 5 минут, чтобы он отключал мой Wi-Fi при запуске, если он уже подключен! Я хочу иметь возможность, например, когда скрипт запускается, он сначала проверяет, подключен ли ПК к определенному имени профиля WLAN, а затем проверяет, подключен ли PPPoE, сразу после этого, если PPPoE подключен, он пингует сайт, чтобы подтвердить, что Интернет доступен, и если Интернет доступен, он его покидает, в противном случае, если PPPoE не подключен, он повторяет тот же процесс, как в скрипте:
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
)
Использование DNS Google в качестве теста, но вы можете изменить его на любой IP, который хотите. Это запустит ваши команды только в том случае, если PING по какой-то причине не сработает.
Лично я не думаю, что это хорошее решение, ваше соединение не должно прерываться достаточно регулярно, чтобы оправдать это. Похоже, что-то где-то может нуждаться в замене или исправлении, и это всего лишь временная мера, которая, хотя и не каждые 5 минут с этим изменением, может вызвать у вас проблемы, если вы транслируете или находитесь в середине загрузки.