再续一帖。
在 CCF 又看到 hitme 的回复。如下:
用法:cmd下
限制:只能支持某行,而非某些行
find8 "关键字" 文本文件名
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1 delims=" %%i in ('find /n %1 %2^|more +2') do (
set min=%%i
set /a max=!min! + 8
)
for /f "tokens=1* delims=" %%i in ('find /n /v "" %2^|more +2') do (
if %%i geq !min! (if %%i leq !max! (
if "%%j"=="" (echo.) else (echo.%%j)))
)
endlocal
思路很好,只是不支持多行匹配。
我小改一下:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1 delims=" %%i in ('find /n %1 %2^|more +2') do (
set min=%%i
set /a max=!min! + 8
echo.
for /f "tokens=1* delims=" %%i in ('find /n /v "" %2^|more +2') do (
if %%i geq !min! (if %%i leq !max! (
if "%%j"=="" (echo.) else (echo.%%j)))
))
endlocal
Last edited by 无奈何 on 2005-10-3 at 23:46 ]