|
|
刚学会不久for 命令,为了巩固,所以写了以下代码。但发现其效率不高。特在此求助各位大大……
希望帮我美化它
希望帮我简化它
希望帮我提高它的效率。
@echo off&title scan ip by 李进&color 1f&mode con lines=20 cols=80
setlocal enabledelayedexpansion
set /p start=startip:
set /p end=endip:
cls
echo !start! >startip.tmp
echo !end! >endip.tmp
echo 扫描中,请稍候……
for /f "tokens=4 delims=." %%i in (startip.tmp) do (
set snum=%%i
)
for /f "tokens=4 delims=." %%j in (endip.tmp) do (
set enum=%%j
)
for /f "tokens=1,2,3 delims=." %%k in (endip.tmp) do (
set fnum=%%k.%%l.%%m
)
for /l %%i in (!snum! 1 !enum!) do (
set ti=!fnum!.%%i
title 扫描!ti!……
ping /n 1 !ti! | findstr /i "reply"&&if "%errorlevel%" == "0" echo !ti! >>now.tmp
)
cls
if not exist now.tmp call :end else call :yes
:yes
echo 存活主机:
for /f %%i in (now.tmp) do (
echo %%i
)
endlocal
del /a /q *.tmp
echo 扫描结束,按任意键退出……&pause>nul
)
goto :eof
:end
endlocal
echo 没有发现存活的主机。
del /a /q *.tmp
echo 扫描结束,按任意键退出……&pause>nul
exit
goto :eof
还有,我对findstr掌握得不好,哪位大大给点资料?
谢谢!
不胜感激!
嘻嘻! |
评分
-
查看全部评分
|