返回列表 发帖

[其他] 批处理怎样记录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
exitCOPY

回复 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 编辑
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:eofCOPY
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 2# Batcher

感谢大佬回复

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

TOP

回复 3# /zhqsystem/zhq


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

TOP

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

TOP

回复 6# WHY


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

TOP

返回列表