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

Batch file 用于ping所有本地IP地址的批处理文件,batch-file,Batch File,我一直在自学批处理脚本,但我似乎无法让它正常工作 我需要一个.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打印到.t

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

我需要一个.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.

试试这个:

::@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"
对于批处理文件中的变量,应使用%%。在cmd提示符下使用single% 循环内容需要位于一对括号内,或者位于for的同一行中。 您需要在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
因此,您可以在paren中的循环中添加其他内容。 添加了-w超时开关,为了加快速度,对于本地IP很快,可以增加时间。
检查是否存在/?、ping/?和findstr/?更多信息。

for需要在一行中。或者至少,在for行的末尾需要一个。您需要理解术语“批处理文件”的含义。它是一批批一批地执行的命令。这么说吧。您的for行以do结尾。。做什么?:。因此,将您的%加倍,并将ping线移动到后面的do。即,对于/L%℅i 1,1254 DO ping-n 110.0.0.%℅它的类型为/?进入命令提示窗口并阅读帮助消息;第一句话中的一句提供了解决方案。无论如何,您确定要尝试ping一个又一个IP吗?如果有很多没有反应的,你将不得不等待相当长的一段时间。因此,或许可以看看这些帖子:,…运行了.bat,但它没有创建.txt。你知道哪里有问题吗?@BEdwards可能是文件夹权限,或者没有本地ip ping功能,可能是防火墙/路由器/交换机阻止的icmp数据包。您可以删除echo off,首先打开cmd,然后在cmd窗口内运行批处理,然后您可以检查命令日志,看看是否可以在其中找到一些跟踪。我从cmd运行它,可以看到它ping所有IP地址,但当它结束时,它不会创建txt。我正在从我的桌面上运行它,我应该把它放在一个文件夹中吗?@BEdwards你能手动ping本地IP吗?尝试在同一位置写入一个批处理文件,一个只用于ping IP,另一个只用于>>文件,查看它们是否工作。txt文件是否需要已经存在?