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

[网络连接] 【已解决】批处理如何筛选出符合指定平均响应时间数和丢包数的ip?

本帖最后由 wangdao6699 于 2015-12-26 13:07 编辑

多个ip 地址的在一个名为ip列表.txt
输出 平均延迟100ms 以下 丢包为0
输出到另外一个文本里如提取IP.txt
格式如: 22.233.211.76   65
前面是  IP地址 后面是平均延迟
1

评分人数

    • pcl_test: 勿发笼统、无意义的标题PB -4

回复 1# wangdao6699
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('type "%~dp0\1.txt"')do ping/n "1" "%%~i" >nul 2>nul&&(
  3. for /f "delims=" %%j in ('ping "%%~i"^|findstr/n .')do (
  4.   for /f "delims=:" %%k in ("%%j")do if %%k geq 3 if %%k neq 8 if %%k neq 10 (
  5.    set "#%%i#_name#=%%j"
  6.    set "#%%i#_name#=!#%%i#_name#:<=!"
  7.    set "#%%i#_name#=!#%%i#_name#:>=!"
  8.    set "#%%i#_name#=!#%%i#_name#: (=(!"
  9.    set "#%%i#_name#=!#%%i#_name#: =\!"
  10.    set "#%%i#_name#=!#%%i#_name#:ms=!"
  11.    set "#%%i#_name#=!#%%i#_name#:s=!"
  12.    if %%k geq 3 if %%k leq 6 (
  13.     rem::echo,!#%%i#_name#!
  14.    )else if %%k equ 9 (
  15.     for /f "delims=(" %%l in ("!#%%i#_name#!")do (
  16.      rem::echo,%%i丢失:%%~nxl
  17.      set "#%%i#_if1#=%%~nxl"
  18.     )
  19.    )else if %%k equ 11 (
  20.     for /f "delims=(" %%l in ("!#%%i#_name#!")do (
  21.      rem::echo,%%i平均速率:%%~nxl
  22.      set "#%%i#_if2#=%%~nxl"
  23.     )
  24.    )
  25.    rem::此行为判断行并导出实体数据
  26.    if !#%%i#_if1#! equ 0 if !#%%i#_if2#! leq 100 if not defined #%%i# (
  27.     set/a "#%%i#_number+=1"
  28.     if !#%%i#_number! geq 6 (
  29.      set "#%%i#=yes"
  30.      (echo,i  p: %%i
  31.      echo,速率: !#%%i#_if2#!
  32.      echo,丢失: !#%%i#_if1#!)
  33.     )
  34.    )
  35.   )
  36. )
  37. )
  38. pause
复制代码
1

评分人数

这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 2# /zhqsystem/zhq

经测试有效,非常感谢

TOP

水一发
  1. @echo off
  2. for /f %%a in (IP列表.txt) do (
  3.     setlocal enabledelayedexpansion
  4.     for /f "tokens=3 delims=,(,(" %%b in ('ping %%a^|findstr /i "Lost Average 丢失 平均"') do (
  5.         for /f "tokens=2 delims==ms " %%c in ("%%b") do (
  6.             set /a n+=1
  7.             set #!n!=%%c
  8.         )
  9.     )
  10.     if !#1! equ 0 if !#2! lss 100 echo;%%a    !#2!
  11.     endlocal
  12. )
  13. pause
复制代码
2

评分人数

TOP

回复 5# 回家路上

没有测试过英文系统,查了下xp用的是这两单词,自以为如此,所以说是“水一发”

TOP

五楼已匿 O(∩_∩)O哈!
网太卡,纯手抖。
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

返回列表