Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2015, 00:58   #1
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию bat-файл. Анализ команды ping

День добрый.
Есть следующая задача - проверка доступности узла локальной сети и запись о его доступности в файл.
1) Создаем в планировщике задание - на запуск bat-ника каждые 15 минут
2) Пишем батник пингующий узел и пишущий результат в файл

Желаемый формат файла-лога:
Код:
дата * время * адрес_узла * good/bad (в зависимости от доступности)
звездочки - это разделители

Вот со вторым пунктом и затык
Разбираем по частям:
Код:
дата - date /t
время - time /t
проверка доступности узла - ping name_computer
запись условия - if errorlevel
запись в файл - >>log_file.log
пытаемся собрать (дату/время пока не учитываем)
Код:
ping -n 2 1.0.0.1 | find /i "TTL=" > nul
if errorlevel = 0 (echo "good">>log_file.log) else (echo "bad">>log_file.log)
результат батника - "good" - хотя по факты - данный узел не доступен

Объясните, почему так? В чем ошибка?
Подобные примеры видел в гугле, но шаг в сторону от того, что там написано - не работает почему. Хотелось бы разобраться.
Логика вроде как понятна:
Пингуем узел, и помощью find'a ищем строку TTL= в выводе на экран, перенаправляя результат в "nul"
Если errorlevel = 0, т.е. TLL был найден - пишем ГУД иначе БЭД... но не работает
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.

Последний раз редактировалось Niro; 20.05.2015 в 01:02.
Niro вне форума Ответить с цитированием
Старый 20.05.2015, 09:41   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Попробуйте поправить bat-файл:
Код:
ping -n 2 192.168.1.2 | find /i "TTL=" > nul
if NOT errorlevel 1 (echo "good">>log_file.log) else (echo "bad">>log_file.log)
Знак равенства тут не используется. Можно посмотреть в справке, в Windows.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.05.2015, 15:10   #3
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

ViktorR, спасибо, работает
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надо переписать под bat-файл(файл был взят с Mac) lakrya25 Помощь студентам 6 21.01.2015 14:52
Написать .bat: поиск данных в выводе команды и занесение в переменную Vilgelm Операционные системы общие вопросы 8 14.08.2011 16:46
Bat-файл Simbad Помощь студентам 1 03.04.2011 20:17
bat файл Sparky Помощь студентам 2 14.10.2009 12:02