所以我想连续15次使用相同的数据大小ping 20个不同的站点,并将它们的平均RTT转换成文件。但是我还必须检查相同的IP以获得不同大小的ping数据,每次从8到2048乘以2(8,16,32,64等)。
我尝试开发自己的代码,这是我到目前为止所做的。
@echo off
CLS
ping -n 1 %1|find "Reply" > nul
CLS
IF %ERRORLEVEL% == 0 ( FOR %%G IN (8,16,32,64,128,256,512,1024,2048) DO (echo Pinging with %%G byte of data... & ping -n 1 -l %%G %1|findstr /x "^.*Request.* ^.*Lost.* ^.*Average.*ms" >> results.txt)) ELSE (ECHO The Server %1 did not respond)
为了便于阅读:
@echo off
CLS
ping -n 1 %1
CLS
IF %ERRORLEVEL% == 0
(
FOR %%G IN (8,16,32,64,128,256,512,1024,2048) DO
(
echo Pinging with %%G byte of data... &
ping -n 15 -l %%G %1|findstr /x "^.*Request.* ^.*Lost.* ^.*Average.*ms" >> results.txt
)
ELSE
( ECHO "The Server did not respond" )
我想要完成的是,一个批处理文件,接受10个(或者如果可能的话,15个)参数,这些参数是网站用8,16,32,...,2048对每个站点进行15次ping操作并且如果服务器出于任何原因在我的某些ping请求中给了我一个请求超时,我想停止这个参数的循环并继续下一个但我希望它写入文件"请求超时"
在我的代码中,我试图检查服务器是否响应我的ping请求,如果我得到回复然后开始我的FOR循环。
虽然我无法在任何给定时间检查服务器是否仍然接受我的ping,但是当我有2048字节的数据包时,这种情况会更频繁地发生。如果服务器给我一个" NO"然后我得到一个"请求超时"。
因此,对于某种代码实现,我想检查命令
ping -n 15 -l %%G %1|findstr /x "^.*Request.* ^.*Lost.* ^.*Average.*ms"
将打印 请求超时 ,这样我就可以停止ping并移动下一个参数,这样就不会打扰ping相同的IP 15次。
此外,通过上述实现,如果服务器响应,我将不必检查脚本的开头,因为它将在FOR循环中执行。
我认为参数切换并不难实现,它只是一个转变和一些标签。
提前感谢您的时间,我很乐意为您提供更多关于以下表彰的解释!