Batch file 批量随机ping(尝试确定ping是否成功)

Batch file 批量随机ping(尝试确定ping是否成功),batch-file,random,ip,ping,Batch File,Random,Ip,Ping,我已经做了一个程序,创建随机IP并ping它们,看看它们是否存在。它使用'>'和'>>'记录输出。我想检查ping是否超时,以及它是否将其从文本文档中排除。这是我目前的代码: `@ECHO OFF :LOOP SET /A N1=%RANDOM% * 255 / 32768 SET /A N2=%RANDOM% * 255 / 32768 SET /A N3=%RANDOM% * 255 / 32768 SET /A N4=%RANDOM% * 255 / 32768 PING %N1

我已经做了一个程序,创建随机IP并ping它们,看看它们是否存在。它使用'>'和'>>'记录输出。我想检查ping是否超时,以及它是否将其从文本文档中排除。这是我目前的代码:

`@ECHO OFF
:LOOP
 SET /A N1=%RANDOM% * 255 / 32768
 SET /A N2=%RANDOM% * 255 / 32768
 SET /A N3=%RANDOM% * 255 / 32768
 SET /A N4=%RANDOM% * 255 / 32768
 PING %N1%.%N2%.%N3%.%N4%>>"%USERPROFILE%\Desktop\IP.txt"
 GOTO LOOP`
ping完成后,我希望它记录响应的IP,而不是超时的IP

-提前感谢

@echo off
@echo off
setlocal EnableDelayedExpansion

rem Set the number of IP's to test
set num=20

echo Creating and testing %num% IP's
echo/

for /L %%i in (1,1,%num%) do (

   rem Create the random IP
   set /A N1=!random! %% 255, N2=!random! %% 255, N3=!random! %% 255, N4=!random! %% 255
   set "IP=!N1!.!N2!.!N3!.!N4!"

   rem Show the IP and leave the cursor after it
   set /P "=%%i- Testing !IP!: " < NUL

   rem Test the IP with ping and get just the 3rd word of the 3rd line from ping output
   set "word="
   for /F "skip=2 tokens=3" %%a in ('ping !IP!') do if not defined word set "word=%%a"

   rem If that word is not "out", the IP is correct
   if "!word!" neq "out" (
      echo CORRECT
      echo !IP!>> IP.txt
   ) else (
      echo failed...
   )

)
setlocal EnableDelayedExpansion rem设置要测试的IP数量 设置num=20 回显创建和测试%num%IP 回音/ 对于(1,1,%num%)中的/L%%i,请执行以下操作( rem创建随机IP set/A N1=!random!%%255,N2=!random!%%255,N3=!random!%%255,N4=!random!%%255 设置“IP=!N1!!N2!!N3!!N4!” rem显示IP并将光标保留在其后面 设置/P“=%%i-测试!IP!:”>IP.txt )否则( 回音失败。。。 ) )
@echo off
setlocal EnableDelayedExpansion
rem设置要测试的IP数量
设置num=20
回显创建和测试%num%IP
回音/
对于(1,1,%num%)中的/L%%i,请执行以下操作(
rem创建随机IP
set/A N1=!random!%%255,N2=!random!%%255,N3=!random!%%255,N4=!random!%%255
设置“IP=!N1!!N2!!N3!!N4!”
rem显示IP并将光标保留在其后面
设置/P“=%%i-测试!IP!:”>IP.txt
)否则(
回音失败。。。
)
)
@echo off
setlocal enableextensions enabledelayedexpansion
对于(0)do中的/l%%a(
设置/a“a=!random!%%255”^
“B=!随机!%%255”^
“C=!random!%%255”^
“D=!随机!%%255”
ping-w 1000-n1“!A!!B!!C!!D!”;查找“TTL=“>nul&&(
>>“online.txt”echo!A!!B!!C!!D!
)
)
这将创建无限循环(这
对于(0)中的/l%%a意味着
对于%%a,从0开始,到0,以0为步长

对于每个迭代,为每个ip地址八位字节生成四个随机数。为此,我们使用内置的
生成一个随机数!随机的变量(需要)并使用
set/a
命令(执行计算的批处理方式)将除法的剩余部分除以255(在批处理文件中,模运算符为
%%

一旦生成ip(更多延迟扩展,请参阅前面链接的答案),将发送一个ping,并检查其输出是否存在
TTL=
string()。如果存在此字符串,则可以访问目标并将地址附加到文件中

为了测试
ping
命令的输出中是否存在该字符串,将该字符串导入
find
命令,搜索指定的字符串。如果找到字符串
errorlevel
变量设置为0,如果未找到该字符串,
errorlevel
将设置为1

使用条件执行运算符
&&
检查此值。这意味着如果上一个命令没有将
errorlevel
设置为大于0的任何值,则执行下一个命令

因此,如果
find
命令找到字符串,
errorlevel
将不为1,并且将执行
echo
命令。此
echo
被重定向到附加到目标文件(
>
是附加重定向)

@echo关闭
setlocal enableextensions enabledelayedexpansion
对于(0)do中的/l%%a(
设置/a“a=!random!%%255”^
“B=!随机!%%255”^
“C=!random!%%255”^
“D=!随机!%%255”
ping-w 1000-n1“!A!!B!!C!!D!”;查找“TTL=“>nul&&(
>>“online.txt”echo!A!!B!!C!!D!
)
)
这将创建无限循环(这
对于(0)中的/l%%a意味着
对于%%a,从0开始,到0,以0为步长

对于每个迭代,为每个ip地址八位字节生成四个随机数。为此,我们使用内置的
生成一个随机数!随机的变量(需要)并使用
set/a
命令(执行计算的批处理方式)将除法的剩余部分除以255(在批处理文件中,模运算符为
%%

一旦生成ip(更多延迟扩展,请参阅前面链接的答案),将发送一个ping,并检查其输出是否存在
TTL=
string()。如果存在此字符串,则可以访问目标并将地址附加到文件中

为了测试
ping
命令的输出中是否存在该字符串,将该字符串导入
find
命令,搜索指定的字符串。如果找到字符串
errorlevel
变量设置为0,如果未找到该字符串,
errorlevel
将设置为1

使用条件执行运算符
&&
检查此值。这意味着如果上一个命令没有将
errorlevel
设置为大于0的任何值,则执行下一个命令


因此,如果
find
命令找到字符串,
errorlevel
将不为1,并且将执行
echo
命令。这个
echo
被重定向到附加到目标文件(
>
是一个附加重定向)

这是一个好的开始这是一个好的开始你能给我解释一下吗?正如我之前所说,我是一个新手,我不知道这些命令中的一些