Прежде всего
>@echo off
>for /f %%i in ('ping racer ^| find /c "(0%% loss)"') do SET MATCHES=%%i
>echo %MATCHES%
не работает. Если он не потерпит неудачу, он обнаружит 0%, потому что у него 0%.
Если он терпит неудачу, тоже не работает, потому что он будет иметь 100% потерь, что означает, что он нашел часть потерь 0% за 10
10 (потеря 0%)
Пусть он обнаружит потерю 100% следующим образом:
>for /f %%i in ('ping -n 1 -l 1 %pc% ^| find /c "(100%% loss)"') do SET check=%%i
Уровень ошибки может быть немного испорчен, но он работает как шарм:
>if '%check%'=='1' goto fail
>if '%check%'=='0' echo %pc% is online.&goto starting
1 означает, что это не удалось
0 означает, что это удалось
В моем скрипте есть ссылки.
Goto fail будет означать: fail в моем скрипте, который сообщит мне, что% pc% (который я буду вводить пользователем в начале) находится в автономном режиме и пойдет на другой запуск.
>:fail
>color 0c
>title %pc% is offline
>echo %pc% is offline
>PING -n 6 127.0.0.1>nul
>goto choice
Надеюсь, это поможет.