возможно есть вариант по короче, у меня получилось так:
@echo off
rem под сеть IP которую проверяем берем из первого параметра батника
set ipset=%~n1
set tochka=.
rem временная переменная
set k=%~x1
rem с какого IP начинать провертят
set a=%k:~1,3%
rem на каком IP заканчивать проверку
set k=%~x2
set b=%k:~1,3%
for /l %%i in (%a%,1,%b%) do ( call :pingtest %ipset%%tochka%%%i% )
goto exit
rem ################################################################
:pingtest
setlocal
ping -n 2 %~1 | find "TTL=" > nul
if %errorlevel%==1 (
echo Ping Propal %date% %time% >> %~1.txt
) else (
echo Ping Poyavilsa %date% %time% >> %~1.txt
)
endlocal
exit /b 0
rem ################################################################
:exit
powerwer, при копировании этого текста в батник главное не назови его (батник) ping или pingtest, а то получишь рекурсивный вызов.
Так как ответ на свой вопрос не получил сделал самый простой вариант который проверяет ip адреса в одной подсети например 192.168.1.* и результат записывает в текстовый файл ip.txt.
Запускать в следующем виде "file.bat 192.168.1.10 192.168.1.20"
Мастера, если видите корявость кода, подскажите как его улучшить и оптимизировать.