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

[网络连接] 求助:断电后ping不能就关机,ping通了就断续ping

网上搜到一段脚本,测试环境win 7 x64系统,win 2012 r2
问题:一阵好用一阵不好用,正常的时候,能断网(拨网线)后duan从1到9后,跳到

shutdown
但有时候断网后goto st 之间来回跳,goto不到dw
不知是脚本问题,还是系统原因~~宝宝心里苦
  1. @echo off
  2. set /a duan=0
  3. :st
  4. ping 192.168.0.238 -n 10 >nul
  5. if %ERRORLEVEL%==1 goto dw
  6. set /a duan=0
  7. goto st
  8. :dw
  9. set /a duan=%duan%+1
  10. if "%duan%" geq "9" goto chongqi
  11. goto st
  12. :chongqi
  13. shutdown -s -f -t 600
复制代码

  1. @echo off
  2. :ks
  3. ping /n 90 127.1>>test.txt
  4. findstr /i "ttl" test.txt&&shutdown -a&&goto ks || echo shutdown -s -f -t 600
  5. echo.>test.txt
  6. goto ks
复制代码
考虑到 可能丢包的情况,考虑到 在等待10分钟关机期间网络恢复正常的情况。
测试无误,可删除 || 后的echo
目的,学习批处理

TOP

考虑到 可能丢包的情况,考虑到 在等待10分钟关机期间网络恢复正常的情况。
测试无误,可删除 || 后的echo
hlzj88 发表于 2018-10-15 20:57



    感谢上尉,这个我测试了,奇怪的是,按说执行到 goto ks 会跳到ks,但现在是顺着这些命令全都执行了。
就是执行完关机命令,清除文本,再跳转ks。
然后就提示一会关机,一会取消关机。
findstr /i "ttl" test.txt&&shutdown -a&&goto ks || shutdown -s -f -t 600

TOP

回复 2# hlzj88


    我知道问题在那了,当ping出现无法访问目标主机时,就会出现跳转错误

如果是一般故障是正常的。

TOP

回复 4# pdxufeng1
这个运行流程,当ping不通时,即不能找到ttl,启动延时10分钟的关机命令。在关机命令等待期间,依旧进行ping,当发现了ttl(对方开机了,或丢包现象有偶尔ping通(对方未关机)),取消关机命令。 重复前面流程。
目的,学习批处理

TOP

打开延时,!ERRORLEVEL!就不会出现你说的问题 ,这个你可以试试
智慧是,利用最简单的代码替代复杂事情的处理过程。
付款请扫头像二维码码,谢谢

TOP

回复 1# pdxufeng1
写那么复杂的代码干嘛呢?看下我的代码多简洁明了。
  1. @echo off &COLOR 0E  &MODE CON: COLS=30 LINES=2 &TITLE 断网关机
  2. :RUN
  3. SET 检测的IP地址=192.168.0.238
  4. SET 断网循环次数=9
  5. ::下行 “循环次数” 如无必要请勿修改。
  6. SET 循环次数=1
  7. >NUL PING %检测的IP地址% -n 10 ||CALL :NONET
  8. GOTO RUN
  9. :NONET
  10. SET /A 循环次数=%循环次数%+1
  11. IF /I "%循环次数%"=="%断网循环次数%" shutdown -s -f -t 600
  12. GOTO :EOF
复制代码

TOP

返回列表