首页 > 解决方案 > ping所有本地IP地址的批处理文件

问题描述

我一直在自学批处理脚本,但我似乎无法让它工作。

我想要一个 .bat ping 本地网络上的所有 IP 地址,然后将所有活动 IP 打印到 .txt 文件。

@ECHO OFF
REM This script pings all IPAdresses on an Xfinity Router. 
::v1.0 - BTE - 24FEB19
::
FOR /L %i (1,1,254) DO
ping -n 1 10.0.0.%i 

到目前为止,这是我所拥有的,但我不知道如何让可 ping 的 IP 打印到 .txt。

任何帮助表示赞赏!

B.

标签: batch-file

解决方案


尝试这个:

::@ECHO OFF
REM This script pings all IPAdresses on an Xfinity Router. 
::v1.0 - BTE - 24FEB19
::
FOR /L %%i in (1,1,254) DO ping -n 1 10.0.0.%%i | findstr "ms" && (echo 10.0.0.%%i)>>"pingable_ips.txt"
  • for批处理文件中的变量应该使用%%. (在cmd提示时使用 single %
  • 循环内容需要在一对括号内,或在for.
  • 你需要infor变量之后。
  • 当你在测试时,不要使用@echo off

这里我使用了ms回复信息中的作为信号,你可以根据你的情况改变它。

您也可以将循环放在一对括号内:

FOR /L %%i in (1,1,254) do (
    ping -w 77 -n 1 10.0.0.%%i | findstr "ms" && (echo 10.0.0.%%i)>>"pingable_ips.txt"
)
pause

因此,您可以在循环内(括号内)添加其他内容。
增加了-w超时开关,加快速度,本地ip很快,可以增加时间。
检查for /?ping /?findstr /?更多信息。


推荐阅读