Alex-_-
20-04-2012, 16:18
Хочу сделать скрипт, который бы пинговал сеть и в зависимости от результата пинга что-то делал, например запускал плеер. В итоге у меня получился скрипт такого плана:
: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 - строка с пробелом и переводом на следующую строку, как это отобразить в условии?
: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 - строка с пробелом и переводом на следующую строку, как это отобразить в условии?