这个bat脚本现在只能持续记录ping的报告 要变成只记录延时大于200的报告,怎么改 谢了

@echo off
set filePath=D:\ping\1.txt
set ping_url=192.168.1.40
set ping_url1=192.168.1.26
set ping_url2=192.168.1.27
set ping_url3=192.168.1.29
set ping_url4=192.168.1.30
set sleep_times=300
:top
echo starting test network
echo %date% %time%>>%filepath%
ping %ping_url% -n 1|findStr "TTL" >> %filePath%
ping %ping_url1% -n 1|findStr "TTL" >> %filePath%
ping %ping_url2% -n 1|findStr "TTL" >> %filePath%
ping %ping_url3% -n 1|findStr "TTL" >> %filePath%
ping %ping_url4% -n 1|findStr "TTL" >> %filePath%
ping -n %sleep_times% 127.1 >nul
goto top

第1个回答  2021-05-27
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for %%a in (26,27,29,30,40) do for /f "tokens=5 delims= " %%b in ('ping 192.168.1.%%a -n 1^|findstr ms') do (set b=%%b
set b=!b:~3!
set b=!b:~0,-2!
if !b! gtr 200 echo %date% %time% 192.168.1.%%a 延迟大于200 >>D:\1.TXT
)
ping -n 300 127.1 >nul
%0
pause
如果你ping的结果是time=多少的话 set b=!b:~3!应该修改为set b=!b:~5!追问

似乎不行啊 显示请按任意键继续。。

本回答被提问者采纳
第2个回答  2021-05-27
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off&mode con lines=3000
rem ping检测某些指定ip的响应时间是否超过/大于指定数值
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
:loop
for %%a in (
"ip1"
"ip2"
"ip3"
"ip4"
) do (
set "f="
for /f "tokens=4 delims==" %%b in ('ping -w 15 -n 2 %%~a 2^>^&1^|findstr /i /c:"Average =" /c:"平均 ="') do (
set f=%%b
for /f "tokens=2 delims=m " %%c in ("#%%b") do (
if %%c geq 200 echo;%%~a[%%cms] at %date% %time%
)
)
if not defined f echo;%%~a[null]
)
timeout /t 3 /nobreak>nul
goto loop
相似回答