我的思路跟 more 一样的,只是增加判断第一行就含有abcd时,就没有上一行;判断最后一行含有abcd时,就没有下一行。还有个前提a.txt中不能有空行的,否则就跑题了。
要求一:
- @echo off
- setlocal enabledelayedexpansion
- set/a m=0
- for /f %%a in (a.txt) do (
- set/a n=!m!
- set/a m+=1
- set t!m!=%%a
- set str=%%a
- if "!str:~0,4!"=="abcd" (
- if !n!==0 (call echo 上 一 行:没有上一行) else (call echo 上 一 行:%%t!n!%%)
- echo abcd开头行:%%a
- echo.))
- pause
复制代码
要求二:- @echo off
- setlocal enabledelayedexpansion
- set/a m=0
- for /f %%a in (a.txt) do (set/a m+=1&set t!m!=%%a)
- for /l %%b in (1 1 !m!) do (
- set/a a=%%b-1&set/a b=%%b+1
- call set str=!t%%b!
- if "!str:~0,4!"=="abcd" (
- if !a!==0 (call echo 上 一 行:没有上一行) else (call echo 上 一 行:%%t!a!%%)
- call echo abcd开头行:%%t%%b%%
- if !b! gtr !m! (call echo 下 一 行:没有下一行) else (call echo 下 一 行:%%t!b!%%)
- echo.))
- pause
复制代码
[ 本帖最后由 sjzong 于 2009-5-2 16:49 编辑 ] |