找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27208|回复: 5

[网络连接] [已解决]批处理PING IP问题?

[复制链接]
发表于 2020-7-2 13:32:39 | 显示全部楼层 |阅读模式
for /L %%i in (2,1,231) do (ping -n 1 -w 40 192.168.11.%%i >nul && echo 192.168.11.%%i ping入成功 || echo 192.168.11.%%i ping入失败 && echo 192.168.11.%%i >IP.txt)
这个PING IP是从192.168.11.2-192.168.11.231,想要每ping三个IP后,就不PING 2个IP,这个代码怎么写?
如:
PING
192.168.11.2
192.168.11.3
192.168.11.4
不ping(192.168.11.5和192.168.11.6)
接着PING
192.168.11.7
192.168.11.8
192.168.11.9
不ping(192.168.11.10和192.168.11.11)
........
以此类推!


另外,如果ping不通,就继续ping 5次后,如果ping通了,就不需要继续对同一IP进行ping,直接继续ping下面的IP,这个代码怎么写?(如果每个ip ping 通了,也继续同一IP ping 5次,这样速度太慢了)

)
发表于 2020-7-2 15:50:58 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a "count=0,a=3,b=2,c=a+b"
  4. for /l %%i in (2,1,40) do (
  5.          set /a count+=1
  6.          if !count! leq !a! (
  7.                 title 开始ping 192.168.11.%%i 一次
  8.                 ping /n 1 192.168.11.%%i >nul 2>nul && echo 192.168.11.%%i ping入成功 || (
  9.                         title ping 192.168.11.%%i 一次失败,开始ping5次
  10.                         ping /n 5 192.168.11.%%i >nul 2>nul && echo 192.168.11.%%i ping入成功 || echo 192.168.11.%%i ping入失败
  11.                 )
  12.          )
  13.          if !count! equ !c! set count=0
  14. )
  15. pause&exit
复制代码

评分

参与人数 1技术 +1 收起 理由
滴血雄鹰 + 1 代码有效,自己修改了!

查看全部评分

发表于 2020-7-2 16:10:43 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion&set n=0
  2. for /l %%i in (2,1,11) do (set /a n+=1
  3. if !n! leq 3 ping -n 1 -w 40 192.168.11.%%i >nul && echo 192.168.11.%%i ping入成功 || echo 192.168.11.%%i ping入失败&&ping -n 5 -w 40 192.168.11.%%i
  4. if !n! equ 5 set n=0)
  5. pause
复制代码
 楼主| 发表于 2020-7-2 16:48:31 | 显示全部楼层
回复 2# went

怎么将多个ping 失败的IP输出到IP.txt?
 楼主| 发表于 2020-7-2 16:52:42 | 显示全部楼层
回复 3# smss


不需要显示ping的明细(我要ping的IP太多),只要将多个ping 失败的IP输出到IP.txt即可。

像下面这样:
发表于 2020-7-2 17:41:07 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion&set n=0
  2. for /l %%i in (2,1,231) do (set /a n+=1
  3. if !n! leq 3 ping -n 1 -w 40 192.168.11.%%i>nul 2>nul&&echo 192.168.11.%%i ping入成功>>IP.txt||echo 192.168.11.%%iping入失败>>IP.txt&&ping -n 5 -w 40 192.168.11.%%i>nul 2>nul
  4. if !n! equ 5 set n=0)
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
滴血雄鹰 + 1 代码有效,自己修改了!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 23:31 , Processed in 0.019950 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表