Grep 批量 ping

2024-06-19

寻找一种更好的方法来做到这一点,而不是我习惯的“手动”方法,因为这是一个我必须定期经历的过程。

我有一系列要 ping 的 IP,从10.0.1.15 to 10.0.50.15。第三个八位位组指的是物理位置,最后一个八位位组指的是该位置处的设备。我需要查看哪些位置没有该设备连接到网络。

我当前的解决方案是:

FOR /L %i IN (1,1,50) DO ping -n 1 10.0.%i.15 >> C:\path\to\output\file.txt

这给了我类似的输出

Pinging 10.0.1.15 with 32 bytes of data:
Reply from 10.0.1.15: bytes=32 time=68ms TTL=255

Ping statistics for 10.0.1.15:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 68ms, Maximum = 68ms, Average = 68ms

Pinging 10.0.2.15 with 32 bytes of data:
Request timed out.

Ping statistics for 10.0.2.15:
    Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
...

我更喜欢输出更像:

2
...

但老实说,任何人类可读的东西都可以——这不会被传送到任何地方。

在本例中,位置 1 有该设备,但位置 2 没有。

目前,我对此的最佳解决方案是手动查看该文件并进行跟踪。我可以用 Python 将一些东西组合在一起,但这听起来比它的价值更麻烦。我知道grep有一定的能力来显示上下文,但我在 Windows 上,除了基本的 NT CLI 工具之外无法访问任何东西。

有没有什么办法可以发挥杠杆作用findstr(或等)以获得更容易人类可读的输出?有没有更好的方法,例如电源外壳?


当然。您可以使用find (or findstr如果您愿意的话)测试 "TTL" 是否存在"TTL="(编辑:请参阅下面 MC ND 的评论)并使用生成的 ERRORLEVEL 来确定成功或失败。

@echo off
setlocal

for /L %%I in (1,1,50) do (
    ping -n 1 10.0.%%I.15 | find /i "TTL=" >NUL && (
        echo 10.0.%%I.15: Online
    ) || (
        echo 10.0.%%I.15: OFFLINE
    )
)

请参阅此页 http://www.robvanderwoude.com/condexec.php有关条件执行的更多信息(&& and ||东西)。find sets ERRORLEVEL成功时为 0,失败时为 1。如果您希望将结果记录到 txt 文件而不是控制台,只需将整个内容包装在另一个括号代码块中,如下所示:

@echo off
setlocal

set "logfile=C:\path\to\output\file.txt"

>> "%logfile%" (
    for /L %%I in (1,1,50) do (
        ping -n 1 10.0.%%I.15 | find /i "TTL=" >NUL && (
            echo 10.0.%%I.15: Online
        ) || (
            echo 10.0.%%I.15: OFFLINE
        )
    )
)

type "%logfile%"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grep 批量 ping 的相关文章

  • 使用 .bat 通过文件资源管理器打开文件夹

    我应该使用什么命令在程序末尾打开指定路径 start c Yaya yoyo 不管用 你可以这样尝试 SystemRoot explorer exe c Yaya yoyo
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代
  • 批处理脚本 - 逐行读取

    我有一个日志文件 我需要逐行读入并将该行传送到下一个循环 首先 我在一个单独的文件中 grep 日志文件中的 主 字 如 错误 以保持其较小 现在我需要获取单独的文件并逐行读取它 每行都需要进入另一个循环 在这些循环中我 grep 日志并将
  • 为什么 Windows 命令 DIR 在搜索 *.tif 文件时也会输出 *.tiff 文件?

    我想使用 Windows 命令DIR为了找到唯一TIF文件 即具有扩展名的文件 tif 因此我使用以下小批处理文件 for f delims a IN dir b a d s C wolter testversion input tif d
  • 将文件夹中的每个文件移动到以该文件命名的自己的文件夹中的批处理脚本?

    所以如果我有 folder file1 txt folder file2 jpg folder file3 py 我想创建 folder file1 file1 txt folder file2 file2 jpg folder file3
  • 批处理内无法识别“cscript”

    我需要调用一个调用 vbs 的 bat 当我从命令提示符运行 FindDir vbs 时没问题 但是当我尝试从 CallingVbs bat 调用它时 我收到错误消息 cscript 不被识别为内部或外部命令 我用来调用 vbs 的代码与
  • 使用 sed 删除 [[:space:]] 之后的所有内容

    如何删除空格后的所有内容 如果我指定冒号 而不是 space 我就可以做到这一点 cat t sh echo DW Prod Facets UNRCH MBRS UNRCH Members sql sed r e s DW Prod spa
  • 从 vbscript 获取 bat 中的错误级别

    我试图确定用户是否在 UAC 提示中单击 否 如果是 则不设置空端口 我将此脚本称为批处理文件 如果用户单击 否 我想退出该脚本 VB 脚本 选项显式 Main Sub Main Dim oShell objWMIService servS
  • 带有 for 循环和管道的批处理脚本

    我想要一个目录中的所有 csv 文件 其文件名不包含单词 summary 在命令提示符下我可以键入以下命令 dir b my dir csv find V summary 当我尝试将上述命令传输到批处理文件中时 我遇到了一个问题 因为 fo
  • 如何在文件中搜索多行模式?

    我需要找到包含特定字符串模式的所有文件 我想到的第一个解决方案是使用find管道与xargs grep find iname py xargs grep e YOUR PATTERN 但是 如果我需要查找跨越多行的模式 我就会陷入困境 因为
  • Python cmd 模块命令别名

    我正在使用 cmd 模块在 Python 3 1 1 中制作命令行界面 有没有一种方法可以创建具有多个名称的命令 例如 退出 和 退出 或者这只是创建多个引用相同函数的命令的情况 是的 这只是创建多个引用相同函数的命令的情况 这很常见 为命
  • 我正在为 cmd 编写包装器,但在重定向标准输入时遇到问题

    好的 这就是我正在做的 我想编写一个 net 应用程序 将标准输出 输入重定向到 Richtextbox 我已经让它工作得很好 但是一旦我将标准输入添加到混合中 我的读取命令就会冻结 这是我的表单中的相关代码 Shell new Proce
  • 运行程序并退出cmd窗口

    我想制作一个运行特定程序的批处理文件 然后命令窗口自行退出 我尝试了这个 因为我将创建该批处理文件的快捷方式 以便批处理文件位于根目录中 echo off program exe mainframe pkg exit 它可以工作 但黑色窗口
  • 使用 ICACLS 将文件权限设置为“只读”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我很难从简单 直观的方式转变过来chmod 400尝试在 Windows 命令提示符中执行相同的操作ICACLS 与 UNIX LINUX
  • grep 以特定字符串开头的行

    我想找到文件中以特定字符串开头的所有行 问题是 我事先不知道字符串里有什么 该值存储在变量中 天真的解决方案如下 grep my string file txt 因为如果 Bash 变量my string包含任何正则表达式特殊字符 grep
  • 如何使用Windows任务计划程序执行cscript?

    问题 当我双击 bat 文件时 它会按预期执行 当我在 Windows 任务计划程序中安排它时 除了具有 cscript 的行之外 它都会执行 bat文件的内容 echo off cls cscript CSV To Excel vbs c
  • 让 VBScript 检查文件名中包含特定单词的文件,然后查找并删除该文件

    我想知道是否有一种方法可以使我的 vbs 脚本可以检查并删除名称中含有特定单词的任何文件 这是我到目前为止所拥有的 x MsgBox Searching for any infected files 64 Search DIM filesy
  • 查找从 unix 命令行输入的单词出现的次数

    对于文件file1 txt其中包含 Apple fruit Apple tree Tree AApple AApklle Apple apple TREE Apple 我想查找该单词出现的次数Apple 输出应该是4 我的 script s
  • 使用批处理从文本文件中提取特定文本

    我正在尝试使用批处理代码从文本文件中提取特定文本 我需要从中提取数据的文件将有多行文本 并且行数会有所不同 这意味着指示器的位置也会发生变化 以下是文本文件的示例 File 1
  • 如何在每个批处理脚本运行后清除变量?

    看来 由于我使用 SET 在批处理脚本中声明变量 如果我在 cmd 中运行多次 变量值将持续存在 除非我显式重置它们 我是否必须使用 setlocal 和 endlocal 来确保一次运行中的变量不会在不关闭 CMD 的情况下持续到另一次运

随机推荐

  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • python - 如何使用for循环重新分配数组中的元素

    我有一个 numpy 浮点数组 我想使用 for 循环重新分配不同的值 但 PyCharm 表示未使用新的变量分配 如果我有 请说 for i in array i i 5 它会说 i 是一个未使用的变量 我究竟做错了什么 您需要为数组元素
  • 在通过管道读取标准输入的脚本中使用 pdb.set_trace()

    我有一个通过管道读取标准输入的 python 脚本 但我似乎无法将它与 pdb set trace 一起使用 my script py usr bin env python import sys import pdb def main fo
  • 在 Android 上使用 MediaPlayer 流式传输经过身份验证的视频

    我正在尝试从具有基本身份验证的 SharePoint 服务器 URL 流式传输和播放视频 用户名密码 在我的 Android 设备中browser Media Player VideoView但我得到了 错误 sorry this vide
  • 将 useRef 挂钩传递给 ref 属性的正确方法

    我不确定如何更明确地提出这个问题 但它是关于值传递 and 引用传递反应中的情况 还有胡克斯 我正在使用 gsap 来制作 div 滑入和滑出的动画 这是其上下文 但我猜测 ref 的用途并不重要 因此 这工作得很好 尽管这是一种更典型的类
  • 整个应用程序中的全局“搜索功能”

    在我的整个应用程序中 我希望搜索按钮执行单独的操作Activity 即 当我按下搜索按钮时 从应用程序中的任何位置调用一个单独的活动 有什么方法可以代替定义onSearchRequested 在每项活动中 我只是在一个地方配置它 例如Man
  • GET 数据是否也在 HTTPS 中加密?

    当你拿到时 https crypted google com search q s https encrypted google com search q s Is the s查询已加密 还是只是回应 如果不是 为什么谷歌还要对其公共内容进
  • 确定是否向 Firebase 实时数据库添加或删除数据

    每当添加新帖子时 我都会尝试将通知推送到 Android 应用程序 但是 只要数据 更改 即即使帖子被删除 我不需要 通知也会到达 我如何设置一个条件 以便 FCM 仅在添加帖子时才发送通知 这是我的 index js 文件 const f
  • 使用jquery和css点击按钮后旋转div文本

    我想使用 jquery 和 css 单击按钮后旋转 div 文本 如果用户点击Rotate Left按钮 然后文本在左侧旋转 or用户点击Rotate Right按钮然后文本在右侧旋转 Example div Happy Birthday
  • while 循环中的表并排

    in a while loop its creating a list of heading and image links i want to display it as side by side like in following im
  • 使用宏从 Excel 电子表格中删除任何非指定字符

    我正在尝试通过删除任何非标准字符来清理 Excel 中的 CSV 文件 我唯一关心保留的字符是 A Z 0 9 和一些标准标点符号 任何其他字符 我想删除 当它找到包含我未指定的任何字符的单元格时 我已经得到了以下宏来删除整行 但我不确定如
  • 如何在 Angular 2 karma jasmine 测试中从 JSON 文件加载模拟数据?

    我在写信业力茉莉花测试用例角2 我们遇到了在单独的 JSON 文件中模拟数据的需求 因为数据很大 希望确保代码整洁 为此我进行了很多搜索但没有找到合适的解决方案 我们已经使用以下方式模拟 HTTP 服务模拟后端 所以我们不能使用Angula
  • 启动nodejs时出错:openssl配置失败

    启动 Express 节点时出现以下错误 openssl 配置失败 错误 02001003 系统库 fopen 没有这样的 过程 节点无论如何都会启动 我没有尝试使用 SSL 这是起始代码 app Express app set port
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 正则表达式 - 将 target="blank" 添加到我的内容中的所有 标记链接

    有人可以帮我在 C net 中创建一个正则表达式来添加target blank to all a 在我的内容中标记链接 如果链接已经设置了目标 则将其替换为 blank 目的是在新窗口中打开我的内容中的所有链接 感谢你的帮助 dotnet岩
  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • 使用 Hive 计算文本变量的单词频率

    我有一个变量 每一行都是一个句子 例子 Row1 Hey how are you Rwo2 Hey Who is there 我希望输出是按单词分组的计数 Example Hey 2 How 1 are 1 我正在使用 split a bi
  • 在 React 应用程序中简单连接到 mongodb

    我使用 create react app 创建了简单的反应应用程序 这个应用程序包含表单 验证和引导程序 没有什么花哨的东西能像魅力一样发挥作用 我还注册了 mongo 以获得免费集群 以便我可以发送一些数据 所以我有这个网址 mongod
  • &(与符号)和 && 或 | 之间的区别(管道)和||在 Objective-C 中?

    我想知道Objective C是否关心我是写 还是 我相信一个与号 会或应该导致如果左侧已经为假 则右侧将不会被评估 这适用于 Objective C 吗 Yes 这些运算符在 C 和 Objective C 中的功能相同 就像在 C 中一
  • Grep 批量 ping

    寻找一种更好的方法来做到这一点 而不是我习惯的 手动 方法 因为这是一个我必须定期经历的过程 我有一系列要 ping 的 IP 从10 0 1 15 to 10 0 50 15 第三个八位位组指的是物理位置 最后一个八位位组指的是该位置处的