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

[其他] 批处理怎样记录IP断开的时间?

请教各位大神,
我想实现的目的是。记录脚本开始的时间,一直去ping一个IP,如果三次不通就判断为IP掉线,记录掉线的时间。
写了下面几行批处理。
运行的时候不停的执行  echo start %date%  %time%>>log.txt  不能往下执行。
不理解为什么是这样,麻烦大神帮助一下
  1. @echo off
  2. echo start %date%  %time%>>log.txt
  3. set ip=192.168.1.1
  4. :start
  5. ping %ip% -w 50 -n 1 >nul
  6. IF %ERRORLEVEL% EQU 1 goto error1
  7. IF %ERRORLEVEL% EQU 0 goto start
  8. :error1
  9. ping %ip% -w 50 -n 1 >nul
  10. IF %ERRORLEVEL% EQU 1 goto error2
  11. IF %ERRORLEVEL% EQU 0 goto start
  12. :error2
  13. ping %ip% -w 50 -n 1 >nul
  14. IF %ERRORLEVEL% EQU 1 goto end
  15. IF %ERRORLEVEL% EQU 0 goto start
  16. :end
  17. echo end %date%  %time%>>log.txt
  18. exit
复制代码

回复 1# aabbcc112233


第一行代码删掉
脚本命名为 test.bat
执行以下看看到哪一步出错了
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 /zhqsystem/zhq 于 2020-1-6 02:22 编辑
  1. set n=0
  2. :m
  3. call:Network_Check
  4. if defined $Network_Check (set "n=0")else (set/a "n+=1")
  5. if %n% equ 0 (
  6.   echo,网络正常: %Date% %Time%
  7. )else if %n% geq 3 (set "n=3"
  8.   echo,网络异常: %Date% %Time%
  9. )else (
  10.   echo,网络丢包: %Date% %Time%
  11. )
  12. goto:m
  13. :Network_Check
  14. rem:网络检查
  15. set "$Network_Check="&&for /f "delims=" %%p in ('ping.exe /n 2 "192.168.1.1"')do for %%q in (%%p)do if /i "%%q"=="ttl" set "$Network_Check=%%~p"
  16. goto:eof
复制代码
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 2# Batcher

感谢大佬回复

卡在ping这里了,我测试了一下直接执行命令是没有问题的

TOP

回复 3# /zhqsystem/zhq


    感谢回复  我的要求是知道什么时候网络断开的就行了,不需要知道这么详细的信息。
    我是测试树莓派使用充电宝供电的续航时间,没有想到其他的好办法,只能用网络是否在线来判断

TOP

批处理文件名被命名为 ping.bat 会出现这种情况。

TOP

回复 6# WHY


    我靠居然真的改个名字就好了,还有这种坑,感谢指点

TOP

返回列表