联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: find5line.bat -- 从文本查找关键字并显示其下5行 :: by: 无奈何 - 2005-10-1 - 联系:wunaihe@gmail.com :: 用法:直接运行,显示输出。 :: 说明: 适用环境 Win2000 以上,实测 WinXP。 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo off setlocal ENABLEDELAYEDEXPANSION set /p str=请输入关键字: set /p name=输入文件名: set m=1 ::获取关键字所在行 for /f "tokens=1,2* delims=:" %%a in ('findstr /n /C:"!str!" !name!') do @( set line=%%a set /a line-=1 set n=1 echo. echo 查找到第 !m! 个匹配 set /a m+=1 ::显示关键字及其下5行 for /f "delims=" %%i in ('more +!line! !name!') do ( if !n! LEQ 5 echo %%i set /a n+=1 ) ) 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 ) 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