[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理如何实现ping指定域名或ip当响应时间大于指定数值时触发报警?

本帖最后由 pcl_test 于 2016-11-24 20:31 编辑

ping外网时,只要在ping过程中连续出现三个值大于设定值时调用声音报警,并把报警触发时间记录到a.txt,ping本身不退出,只是报警。

楼主这么语焉不详,不给你完整代码,留个思路自己整吧,我也惜字如金
管道是单向的,所以要实现撸主的要求,得绕一下:
  1. @echo off
  2. start /b cmd /c ping /t xxx.xxx.xxx.xxx^>ping.log
  3. :loop
  4. for /f %%a in ('type ping.log') do (
  5.    你要进行的操作
  6. )
  7. goto loop
复制代码

TOP

本帖最后由 keshun 于 2013-6-12 19:26 编辑

回复 2# CrLf


    抱歉!!我文字描述不过祥细,见谅!!

感谢论坛巡查的答复,只是本人功低不足,代码添补多次都出错,还望进一步解答!

我是想对网速质量的进行监控,异常第一时间发现进行排查问题。

1。通过ping www.sina.com.cn -t,判断网速质量,新浪网站的正常ping是3-5ms,当ping值连续3个大于20ms时给予声音报警,这样可以提醒我关注异常时段分析问题。
2。把触发报警时间记录在a.txt,在我分析服务器记录数据时有时间依据。
3。报警声音只要能调用系统声音会响就行,最好不弹播放器窗口。

TOP

  1. @echo off & title 网络高延迟报警Beta
  2. set t=15
  3. set ip=192.168.1.1
  4. set file=记录.txt
  5. set tee=^|cscript /nologo "%temp%\tee.vbs" ^>^>%file%
  6. echo 正在持续检测中...
  7. echo>"%temp%\tee.vbs" text = wscript.stdin.readall:wscript.echo text:wscript.stderr.write text
  8. :2
  9. for /f "tokens=3 delims==" %%a in ('ping %ip% -n 1') do (
  10. if not "%%a" GEQ "0" echo %date:~0,10% %time:~0,8% 网络异常%tee% & echo  & goto 2
  11. for /f "delims=m" %%b in ("%%a") do (if %%b GEQ %t% echo %date:~0,10% %time:~0,8% 延迟过大:%%bms%tee% & echo )
  12. ping 127.1 -n 2 >nul
  13. goto 2
  14. )
  15. echo %date:~0,10% %time:~0,8% 网络中断%tee% & echo  & goto 2
复制代码
以前写的,超过15秒,主板蜂鸣器就报警

TOP

回复 4# 522235677


    感谢!虽然跟我的预期效果有点出入,但也基本满足,感谢!!

TOP

回复 4# 522235677

看了受益良多,但有几句不太明白:
set tee=^|cscript /nologo "%temp%\tee.vbs" ^>^>%file%
echo 正在持续检测中...
echo>"%temp%\tee.vbs" text = wscript.stdin.readall:wscript.echo text:wscript.stderr.write text

这个所起的作用是??谢谢

TOP

回复 6# iabat


    set tee=^|cscript /nologo "%temp%\tee.vbs" ^>^>%file%
echo 正在持续检测中...
echo>"%temp%\tee.vbs" text = wscript.stdin.readall:wscript.echo text:wscript.stderr.write text
这个是vbs代码,目的就是屏显的同时将内容写到文本中。

TOP

返回列表