Я пытаюсь создать пакетный файл, где обнаружит анонсы ping. Я хочу, чтобы он ping на IP бесконечно (-t), пока я не закрою его там, где он записывал бы каждый раз, когда ms> 100 мс и отметка времени. Я думаю где-то вдоль строк подстрочных переменных, но я не знаю, как обернуть вокруг себя голову.Написание командного файла для обнаружения аномалий ping
-1
A
ответ
1
:Loop
time /t >> textfile.txt
ping -n 1 127.0.0.1 | findstr /c:"Minimum" >> textfile.txt
timeout /t 5
Goto Loop
Или, возможно, это соответствует вашим потребностям
ping /t > textfile.txt
или
:loop
wmic /append:"textfile.txt" path win32_pingstatus where "address='127.0.0.1' and responsetime > 100" get responsetime,timestamprecord
goto loop
0
Я искал ответ на этот же вопрос на некоторое время. Ответ bgalea дал мне те части, которые мне нужно было написать самостоятельно. Вот что я придумал:
:: usage: badpings.bat [ip adress | hostname] [ping time threshhold]
@echo off
if "%1"=="" (
set pingdest=yahoo.com
) else (
set pingdest=%1
)
if "%2"=="" (
set /a limit=100
) else (
set /a limit=%2
)
echo Pinging %pingdest%.
echo Logging replies over %limit%ms.
echo Press Ctrl+C to end.
:Loop
for /f "usebackq tokens=1-6" %%a in (`ping -n 1 %pingdest% ^| findstr "Request Reply request"`) do (
set var=%%a %%b %%c %%d %%e %%f
set pingtimestr=%%e
)
if "%pingtimestr%"=="find" (
echo Ping request could not find host %pingdest%. Please check the name and try again.
goto End
)
if "%pingtimestr%"=="host" (
set /a pingtime=%limit%+1
)
if "%pingtimestr:~0,4%"=="time" (
set /a pingtime=%pingtimestr:~5,-2%
)
if %pingtime% GTR %limit% (
echo [%time%] %var%>>badpings.log
echo [%time%] %var%)
timeout /t 1 /nobreak >nul
Goto Loop
:End
Это работает на Windows 10. Я не тестировал его на других версиях ОС.