@echo off
color 0a
MODE con: COLS=60 LINES=10
title 网速检测器——网络管理员必备批处理 『罗斌制作』 QQ:287727615
:start
setlocal ENABLEDELAYEDEXPANSION
ping www.sina.com >c:\1.txt
::从1.txt里面裁取出含有time的行。
findstr "time" "c:\1.txt" >>c:\new1.txt
::将time=前面的所有字符全部删除,并把结果重定向到new2.txt。
for /f "delims=" %%i in (c:\new1.txt) do set str=%%i&call,echo %%str:~39%% >>c:\new2.txt
::将TTL替换为空格并把结果重定向到test1.txt。
for /f "delims=" %%i in ('type c:\new2.txt') do (
set str=%%i
set "str=!str:TTL= !"
echo !str!>>c:\test1.txt)
)
:::将56替换为空格并把结果重定向到test2.txt。
for /f "delims=" %%i in ('type c:\test1.txt') do (
set str=%%i
set "str=!str:56= !"
echo !str!>>c:\test2.txt)
)
::去掉最后一行字符,并把结果重定向到test3.txt。
for /f "delims=" %%i in ('type c:\test2.txt ^| findstr "="') do (
set str1=%%i
set "str2=!str1:str1= !"
echo !str2!>>c:\test3.txt)
)
:::将ms替换为空格并把结果重定向到test4.txt。
for /f "dalims=" %%i in ('type c:\test3.txt') do (
set str=%%i
set "str=!str:ms= !"
echo !str!>>c:\test4.txt)
)
::比较出最大延迟的最大值和最小值,当最大值超过700ms的时候,
::使用net send给管理员发送网络不正常的消息!!!
@echo off&setlocel enabledelayedexpansion
for /f %%i in (c:\test4.txt) do (
if not defined b set b=%%i
if %%i GTR !a! set a=%%i
if %%i LSS !b! set b=%%i
)
::echo !b! >c:\test5.txt &echo !a! >>c:\test5.txt
::发送消息和删除生成的临时文件。然后延迟300秒后再次跳到start执行
::以达到实时监控网络是否正常的目的!
if %a% GEQ 700 net send 192.168.1.30 网络不正常,可能有人下载,请管理员采取措施!!!
::start c:\info.html
del c:\1.txt
del c:\new1.txt
del c:\new2.txt
del c:\test1.txt
del c:\test2.txt
del c:\test3.txt
del c:\test4.txt
echo 最小网络延迟为:!b!&echo 最大网络延迟为:!a!
ping 127.0.0.1 -n 300 >nul
goto start
pause >nul
![批处理打造网速检测器〖罗斌原创〗_检测器](http://pa.p_w_picpaths22.51img1.com/6000/luobin44/a7b0d8de8cf402ab789b4b4706a1c65a.jpg)
下面是我在网上搜的然后修改的批处理。呵呵,比我的短多了,功能一样!哎....
@echo off
MODE con: COLS=60 LINES=10
title 网速检测器——网络管理员必备批处理 『罗斌制作』 QQ:287727615
:start
set "url=www.baidu.com"
set "n=10"
echo 正在测试,请稍候...
for /f "tokens=1-4* delims==" %%a in ('ping /n %n% "%url%"^|find "Average"') do set "i=%%d" && goto :a
if "%i%"=="" cls & echo. & net sand 192.168.1.30 报告管理员您的网络掉线了,请立即检查您的网络......
pause>nul
:a
set "i=%i:ms=%"
set "i=%i: =%"
cls & echo ===平均Average: %i%ms=== & echo.
if %i% lss 500 (echo 网络连接正常) else net send 192.168.1.30 网络连接不正常,可能有人下载!请采取措施!&echo 网络连接不妥哦
ping -n 300 127.0.0.1 >nul
goto start
pause>nul
![批处理打造网速检测器〖罗斌原创〗_批处理打造网速检测器_02](http://p7.p_w_picpaths22.51img1.com/6000/luobin44/7f2d88707ee4e2facc0c85f8eac37847.jpg)
这些是网速正常的情况,如果网速不正常的时候,马上会提示:
当然要想有这个其实的话,管理员的机器一定要开启messager服务哦,不然是用不了net send命令的。
![批处理打造网速检测器〖罗斌原创〗_luobin44_03](http://p0.p_w_picpaths22.51img1.com/6000/luobin44/0bbfa8a94d80e948483d09e97b6b618b.jpg)
是不是很好呀。这个小巧的功能是不是很实用勒?
转载文章请标明:该文章转自 罗斌原创技术文章:http://luobin44.51.com 〖罗斌原创〗