[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
你只要去掉 -t  参数,然后用循环来做,ping -t 一直工作,根本不返回。

每个循环发一个包, ping -n 1 ,然后找出 IP,LOST,TIMS 的值赋给变量处理就可以了

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set "ip_address=[59.33.105.53]"
  3. rem 设置初始IP;
  4. :loop
  5. set /a packets+=1
  6. for /f "delims=*" %%i in ('ping -n 1 guoxin006.free.ezvpn.cn^|findstr "Pinging Reply Request" ') do (
  7. call :%%i
  8. )
  9. goto :loop
  10. :Pinging
  11. rem 获取对应DNS的IP地址
  12. if not %ip_address%==%2 echo;[IP]  %time% ip_address change to %2>>log.txt
  13. set "ip_address=%2"
  14. goto :eof
  15. :Reply
  16. rem 获取延迟时间;
  17. set "tm=%6"
  18. set tm=!tm:~0,-2!
  19. echo !tm!
  20. if !tm! geq 500 echo;[Delay]  %time% Approximate round trip time=%6>>log.txt
  21. goto :eof
  22. :Request
  23. rem 记录丢包;
  24. set /a loss+=1
  25. set /a _loss+=1
  26. set /a lp= loss*100 / packets
  27. if !_loss! geq 5 (
  28. set /a _loss=0
  29. echo;[Packets] %time% Packets: Sent = !packets!, Received = !packets!, Lost = !loss! [!lp!%% loss]>>log.txt
  30. )
  31. goto :eof
复制代码

修改过的

[ 本帖最后由 caruko 于 2010-7-7 13:34 编辑 ]

TOP

返回列表