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

[系统相关] [已解决]批处理怎么实现连续ping一个ip,不通则自动关机

本帖最后由 522235677 于 2021-12-18 15:26 编辑

因为服务器上接了UPS,停电后不好自动执行自动关机,所以想到这个方法。曾经小弟我写这么简单的功能,都是手到擒来的,如今多年不接触批处理,这么简单的功能都写不出来了……老了……
就想连续ping,如果1分钟内连续ping不通指定的IP,或者说连续ping60次都不通,就执行shutdown关机命令。

最后,感谢大佬们的帮助

回复 1# 522235677
  1. @echo off
  2. ping -n 60 192.168.0.123
  3. if errorlevel 1 (
  4.     shutdown /s /f /t 0
  5. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    感谢老大帮忙,但是我测试发现,如果ping 60次全部都是“请求超时”的话,那errorlevel 就是1,但是实际返回的是“无法访问目标主机”,这样就识别不了了

正在 Ping 192.168.10.144 具有 32 字节的数据:
来自 192.168.10.220 的回复: 无法访问目标主机。
来自 192.168.10.220 的回复: 无法访问目标主机。
来自 192.168.10.220 的回复: 无法访问目标主机。

TOP

if not errorlevel 0   也可以吧

TOP

回复 4# zhaolu133


    不行哦,ping通 或者  无法访问目标主机
%errorlevel% 都是 0

TOP

只要ping成功一次就不关机
  1. @echo off
  2. for /l %%i in (1,1,60) do (
  3. ping /n 1 192.168.10.220 | findstr /i ttl && ( echo success %%i & goto :e )
  4. echo failed %%i
  5. )
  6. shutdown /s /t 0
  7. :e
  8. pause&exit
复制代码

TOP

回复 6# went


    感谢大佬帮助,我也写了个土方法
  1. @echo off & title ping 群晖,不通则关机
  2. mode con cols=60 lines=10
  3. :loop
  4. ping -n 3 192.168.10.230|findstr /i /c:"来自 192.168.10.230 的回复"
  5. if errorlevel 1 (
  6.     shutdown -s
  7.     pause
  8.     exit
  9. )
  10. goto :loop
复制代码

TOP

返回列表