标题: [其他] 批处理怎样记录IP断开的时间? [打印本页]
作者: aabbcc112233 时间: 2020-1-5 17:01 标题: 批处理怎样记录IP断开的时间?
请教各位大神,
我想实现的目的是。记录脚本开始的时间,一直去ping一个IP,如果三次不通就判断为IP掉线,记录掉线的时间。
写了下面几行批处理。
运行的时候不停的执行 echo start %date% %time%>>log.txt 不能往下执行。
不理解为什么是这样,麻烦大神帮助一下- @echo off
- echo start %date% %time%>>log.txt
- set ip=192.168.1.1
-
- :start
- ping %ip% -w 50 -n 1 >nul
- IF %ERRORLEVEL% EQU 1 goto error1
- IF %ERRORLEVEL% EQU 0 goto start
-
- :error1
- ping %ip% -w 50 -n 1 >nul
- IF %ERRORLEVEL% EQU 1 goto error2
- IF %ERRORLEVEL% EQU 0 goto start
-
- :error2
- ping %ip% -w 50 -n 1 >nul
- IF %ERRORLEVEL% EQU 1 goto end
- IF %ERRORLEVEL% EQU 0 goto start
-
- :end
- echo end %date% %time%>>log.txt
- exit
复制代码
作者: Batcher 时间: 2020-1-5 20:48
回复 1# aabbcc112233
第一行代码删掉
脚本命名为 test.bat
执行以下看看到哪一步出错了
作者: /zhqsystem/zhq 时间: 2020-1-6 02:17
本帖最后由 /zhqsystem/zhq 于 2020-1-6 02:22 编辑
- set n=0
- :m
- call:Network_Check
- if defined $Network_Check (set "n=0")else (set/a "n+=1")
- if %n% equ 0 (
- echo,网络正常: %Date% %Time%
- )else if %n% geq 3 (set "n=3"
- echo,网络异常: %Date% %Time%
- )else (
- echo,网络丢包: %Date% %Time%
- )
- goto:m
- :Network_Check
- rem:网络检查
- 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"
- goto:eof
复制代码
作者: aabbcc112233 时间: 2020-1-6 22:55
回复 2# Batcher
感谢大佬回复
卡在ping这里了,我测试了一下直接执行命令是没有问题的
作者: aabbcc112233 时间: 2020-1-6 22:58
回复 3# /zhqsystem/zhq
感谢回复 我的要求是知道什么时候网络断开的就行了,不需要知道这么详细的信息。
我是测试树莓派使用充电宝供电的续航时间,没有想到其他的好办法,只能用网络是否在线来判断
作者: WHY 时间: 2020-1-6 23:52
批处理文件名被命名为 ping.bat 会出现这种情况。
作者: aabbcc112233 时间: 2020-1-8 22:51
回复 6# WHY
我靠居然真的改个名字就好了,还有这种坑,感谢指点
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |