Тема: CMD/BAT: Цикл для ping
Добрый день! У меня давно был написан простой скрипт для проверки доступности хоста с логированием. Хотел добавить в скрипт проверку сразу нескольких хостов, но не получается. Пробовал через команду "start", но не получается отлавливать результат команды "ping".
Текущий скрипт:
@ECHO OFF
COLOR 0A
:: ---------- задаем переменные -------------
:: задаем узел для тестирования доступа
set IP_for_test=8.8.8.8
:: задаем путь к папке с логом
set log_dir=C:\scripts\test_connect
:: задаем количество пакетов для оценки
set num_packets=20
:: задаем таймаут для каждого ответа
set ping_timeout=1000
:: -------------------------------------------
set badaccess=0
set goodaccess=1
:: проверяем наличие папки для лога
if not exist %log_dir% md %log_dir%
:starttesting
ping.exe -l 1 -n %num_packets% -w %ping_timeout% %IP_for_test% | find "TTL=" > nul
if %errorlevel%==1 (
set badaccess=1
if %goodaccess%==1 echo %date% lost access to the %IP_for_test% in %time% >> %log_dir%\%IP_for_test%_log.txt
set goodaccess=0
) else (
set goodaccess=1
if %badaccess%==1 echo %date% will have access to the %IP_for_test% in %time% >> %log_dir%\%IP_for_test%_log.txt
if %badaccess%==1 echo. >> %log_dir%\%IP_for_test%_log.txt
set badaccess=0
)
goto :starttesting
exit /b 0