2016-02-24 3 views
-1

Я пытаюсь создать пакетный файл, где обнаружит анонсы ping. Я хочу, чтобы он ping на IP бесконечно (-t), пока я не закрою его там, где он записывал бы каждый раз, когда ms> 100 мс и отметка времени. Я думаю где-то вдоль строк подстрочных переменных, но я не знаю, как обернуть вокруг себя голову.Написание командного файла для обнаружения аномалий ping

ответ

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. Я не тестировал его на других версиях ОС.

 Смежные вопросы

  • Нет связанных вопросов^_^