@echo off echo//////////////////////////////////////////////////////// echo Copyright by ruin_studio echo. echo program begin call :select ip address ip if not defined ip (echo 网络电缆断开 & goto end) echo my ip:%ip% call :select subnet mask net_beginhost echo Subnet Mask:%net_beginhost% for /f tokens=1-3 delims=. %%a in (%ip%) do ( set num_1=%%a set num_2=%%b set num_3=%%c ) set var=%num_1%.%num_2%.%num_3% set /p beginhost=开始主机: set /p endhost=结束主机: echo. echo please wait... echo. setlocal enabledelayedexpansion echo begin_time:%time% echo. for /l %%i in (%beginhost%,1,%endhost%) do ping -n 1 -l 18 -w 100 %var%.%%i | find Replyreply.txt for /f tokens=3 %%i in (reply.txt) do ( set /a num+=1 set va=%%i echo !va:~0,-1! online ) echo. if defined num (echo %num% host online) else (echo no host online) del reply.txt echo. echo end_time:%time% :end echo. echo//////////////////////////////////////////////////////// echo. echo 按任意键结束 & pausenul goto :eof :select for /f tokens=15 %%i in ('ipconfig ^| findstr /i /c:%1') do if not !%~2! == set %~2=%%i goto :eof 自己很早写的段程序 保存Ping执行结果 在分离 计算 因为用的是TXT文件做通道 所以执行范围较大时 速度有点慢 开始主机和结束主机 写开始和结束IP的最后一段 检查这俩段IP之间在线的主机 效果图如下