用bat脚本实现同时ping多个ip地址把结果返回到一个txt文本内容如果ping通就显示多少毫秒不通显示连接超时

如题所述

@echo off & title Ping 检测IP连接 By 依梦琴瑶
cd /d %~dp0
setlocal enabledelayedexpansion
::设置包含IP列表的文件
set List=需检测的IP.txt

::设置结果文件名
set result=Ping结果.txt

if not exist "%List%" (
    echo %List% 不存在
    pause&exit
)
if exist "%result%" del "%result%"

echo 即将开始 Ping 检测。&ping 0 -n "2">nul
for /f "delims=" %%a in (%List%) do call:PingIt %%a
del P$&cls&title Ping 检测完毕 By 依梦琴瑶&echo 检测完毕,已生成检测日志,按任意键后将为您打开日志记录文件。
pause>nul&start "" "%result%"&exit

:PingIt
set msg=正在对“%1”进行 Ping 检测。。。
cls&title %msg%&echo %msg%
ping %1 -n "1">P$
set "ms="
findstr /c:"TTL=" P$>nul && for /f "tokens=4 delims== " %%a in ('findstr /c:"平均" P$') do set ms=%%a
if defined ms (
    set rst=!ms:~,-2! 毫秒
) else (
    set rst=连接超时(不通)
)
echo %~1 : %rst%>>"%result%"
goto :eof

曾经给人写了一个类似的,现在根据您的要求稍微修整一下。

追问

怎样添加包含ip的txt文本啊

追答

新建一个txt文本,名字就和脚本中的一样即可,然后里面一行一个ip地址。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答