Batch file 八位字节2和3的批ping扫描

Batch file 八位字节2和3的批ping扫描,batch-file,cmd,ping,Batch File,Cmd,Ping,我正在尝试编写一个脚本,将ping 10.x.x.185用于600多个位置,然后导出到文本文件。我知道>>可以用来附加到文本文件中。 IP范围如下:10.0.1.185,一直到10.50.2.185,每次递增1。我看到一个问题是在10.0.255.185 如果我能在两个不同的文件中通过和失败,那就有奖励了。 有什么想法吗?这个循环可以通过两个for/L循环来完成,将输出管道化到两个单独的文件有点困难,但仍然是可能的 @echo off :: Get the vast majority of t

我正在尝试编写一个脚本,将ping 10.x.x.185用于600多个位置,然后导出到文本文件。我知道>>可以用来附加到文本文件中。 IP范围如下:10.0.1.185,一直到10.50.2.185,每次递增1。我看到一个问题是在10.0.255.185

如果我能在两个不同的文件中通过和失败,那就有奖励了。
有什么想法吗?

这个循环可以通过两个for/L循环来完成,将输出管道化到两个单独的文件有点困难,但仍然是可能的

@echo off

:: Get the vast majority of the IP addresses
for /L %%A in (0,1,49) do (
    for /L %%B in (0,1,255) do (
        (ping 10.%%A.%%B.185>nul&&echo 10.%%A.%%B.185>>success.txt)||echo 10.%%A.%%B.185>>failure.txt
    )
)

:: Get the 10.50.x.185 range separately since it only goes from 0 to 2
for /L %%A in (0,1,2) do (
    (ping 10.50.%%A.185>nul&&echo 10.50.%%A.185>>success.txt)||echo 10.50.%%A.185>>failure.txt
)

&&means仅在前一个命令成功时执行此部分,而| | means仅在前一个命令失败时执行此部分。

批处理文件中迭代连续数值列表的常用方法是使用for/l命令。在本例中,由于需要两个不同的序列,因此需要两个嵌套的for/l循环,每个八位字节一个

但是,由于内部循环中的差异取决于外部循环的值,因此我将使用环境变量来定义内部循环对于每个外部值的行为

@回音 setlocal enableextensions enabledelayedexpansion rem获取一个回车到变量中,以便稍后在控制台中显示进度 对于“复制%%f0 nul/z”中的/f%%a,请设置CR=%%a rem定义将用于每个网络八位字节的范围 rem值为for/l命令中的值:开始步骤结束 设置octetA=0 1 50 对于%octetA%中的/l%%a,请设置octetB%%a=1 255 设置八位字节b50=12 rem对地址进行迭代。 rem两个流用于将成功/失败地址发送到 rem正确的日志文件。这样我们就不必打开/写入/关闭 为每个写入操作rem每个文件。 7> suces.txt 8>failure.txt 对于%octetA中的/l%%a%do对于%Octa中的/l%%b!八位字节%%a!做 rem向控制台显示正在测试的当前ip nul |查找TTL=>nul &&>&7回显10.%a.%b.185 | |>&8回显10.%a.%b.185 echo IP地址测试已完成