用于ping所有本地IP地址的批处理文件

时间:2019-02-26 01:28:33

标签: batch-file

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

我想要一个.bat对本地网络上的所有IP地址执行ping操作,然后将所有活动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。

1 个答案:

答案 0 :(得分:1)

尝试一下:

::@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提示符下,使用单个%
  • 循环内容必须在一对括号内,或在for的同一行中。
  • 您需要在in变量之后输入for
  • 在进行测试时,请不要使用@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 /?了解更多信息。