我一直在独自学习批处理脚本,但似乎无法工作。
我想要一个.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。
答案 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 /?
了解更多信息。