bat求教一个批处理:pingN个IP,如果ping不通的时候就ping下一个ip地址

bat批处理:ping几个IP,能ping通就不用管。如果出现连续5次或更多’请求超时‘的时候就ping下一个地址。文件比如是:ping111.11.26.238-n10... bat批处理:ping几个IP,能ping通就不用管。如果出现连续5次或更多’请求超时‘的时候就ping下一个地址。文件比如是:ping 111.11.26.238 -n 100ping 111.11.26.254 -n 100ping 111.11.27.110 -n 100ping 111.11.27.182 -n 100ping 111.11.27.209 -n 100 展开
 我来答
依梦琴瑶
高粉答主

2018-03-02 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部

要想检测到“请求超时”字样,那么每个ip只能ping一次,并重复100次,这样才能得到想要的信息,不过这样一来,日志结果看着就头疼了。如果不嫌看着头疼的话,就用下面代码吧!

@echo off
setlocal enabledelayedexpansion

set IPs=111.11.26.238,111.11.26.254,111.11.27.110,111.11.27.182,111.11.27.209

for %%a in (%IPs%) do call :PingIt "%%~a"
pause
exit

:PingIt
(for /l %%i in (1,1,100) do (
    for /f "delims=" %%j in ('ping %~1 -n 1') do (
        echo %%~j
        echo "%%~j" | findstr /i "请求超时。" >nul 2>nul && set /a Count+=1 || set Count=0
        if !Count! geq 5 goto :eof
    )
))>E:\测试结果.txt
goto :eof
追问
  1. 感谢你提供的代码,十分感谢。可是我觉得好像并不是我要的,依然谢谢你!  

  2. 我是需要一个这样的,我需要每次ping几个IP,每个ip需要ping100次,如果遇到这个ip不通的话,是会等很长很长的时间,所以我需要一个代码把这个不通的IP跳过去,这个是我想要的。

  3. 是不是挺麻烦的?我也是想碰碰运气看能不能有这种代码,没有的话就慢慢等也行的。

追答
我知道您的意思。但ping的过程中,是无法获取ping信息的,只有结束后,才能获取。所以我就用了每个ip只ping一次,重复ping100次的方式来获取不通的信息,已达到检测的效果。
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式