![]() |
Ping сети и действие в зависимости от результата, например запуск плеера
Хочу сделать скрипт, который бы пинговал сеть и в зависимости от результата пинга что-то делал, например запускал плеер. В итоге у меня получился скрипт такого плана:
:Line1 rem Пингуем сеть и записываем результат в лог ping ... > ping.log pause rem проверяем, есть ли в результате типичное для удачного пинга слово TTL и присваиваем переменной р for /F "delims=" %%p IN ('find /C /I "TTL" "C:\Users\user03\Desktop\ping.log"') DO (SET p=%%p) rem если есть хотя бы одно совпадение - запускаем плеер, если нет - пингуем заново IF p=="....(не знаю что присвоить)" Start "ring" /d "C:\Program Files\AIMP2\" "AIMP2.exe" /b ELSE goto Line1 pause Все бы ничего, но результатом find становится не количество найденных строк, как хотелось бы, а уродливая строка вида ----------C:\USERS\USER03\DESKTOP\PING.LOG: 2 до последней цифры эта писанина мне нафиг не нужна, можно ли как-то присвоить не всю эту строку переменной р, а только последний символ???? Обыскал весь гугл на эту тему - не нашел(((( пытался в If поставить IF NOT p=="---------- C:\USERS\USER03\DESKTOP\PING.LOG: 0 " Start "ring" /d "C:\Program Files\AIMP2\" "AIMP2.exe" /b ELSE goto Line1 чтобы обработать хотя бы такой вариант, но результат find - строка с пробелом и переводом на следующую строку, как это отобразить в условии? |
Alex-_-, можно в одну строчку:
Код:
Ping -n 1 имя_или_IP-адрес >nul && Start "ring" "%ProgramFiles%\AIMP2\AIMP2.exe" |
Цитата:
>nul как я понял скрывает ошибку пинга, а && продолжает выполнение команды, если первая часть выполнена? Тогда так можно еще зациклить, чтобы пинговало, пока связи нет, а как появится - запустить плеер и выходить, крутотенечка!!! :Line1 Ping -n 1 [url] >nul && Start "ring" "C:\Program Files\AIMP2\AIMP2.exe" && Exit goto Line1 |
Цитата:
Цитата:
Код:
:Line1 |
Цитата:
|
Цитата:
Код:
ping.exe -n 1 www.ya.ru && echo Ok || echo Failure Код:
ping.exe -n 1 bla.bla.bla && echo Ok || echo Failure |
Время: 14:14. |
Время: 14:14.
© OSzone.net 2001-