Board logo

标题: [文本处理] 【已解决】批处理如何读取或显示文本的指定一行或某几行 [打印本页]

作者: li_dongyun    时间: 2009-5-8 12:38     标题: 【已解决】批处理如何读取或显示文本的指定一行或某几行

如果一个文本有很多行,如:
aaaaaaaa
bbbbbbbbb
cccccccccccc
dddddddd
eeeeeeee
ffffffff
ggggggggggg
hhhhhhhhhh
iiiiiiiii
jjjjjjjjj
kkkkkkkk

怎么显示指定一行(如第二行)的内容?
怎么显示指定几行(如第2、5、6行)的内容?

[ 本帖最后由 li_dongyun 于 2009-5-13 21:50 编辑 ]
作者: Batcher    时间: 2009-5-8 12:44

批处理小函数实现对文件指定行的读取
http://bbs.bathome.net/thread-4450-1-1.html
作者: inittab    时间: 2009-5-9 00:54

练习一下.之前想了个more方案。发现不能正确处理空行。findstr支持

  1. @echo off
  2. set /p var=请输入要读取的行(用空格分隔):
  3. set /p ff=请输入读取的文本文件:
  4. for %%a in (%var%) do (
  5. call :lp %%a
  6. )
  7. pause&goto :eof
  8. :lp
  9. for /f "tokens=1,* delims=:" %%i in ('findstr/n .* %ff%') do (
  10. if %%i equ %1 echo.%%j&goto :eof)
复制代码

[ 本帖最后由 inittab 于 2009-5-9 01:14 编辑 ]
作者: lxzzr    时间: 2009-5-9 05:50

没有过滤空行:
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. FOR /F "DELIMS=" %%A IN (A.TXT) DO (
  4. SET /A TEMP_N+=1
  5. IF !TEMP_N! == 2 ECHO %%A
  6. IF !TEMP_N! == 3 ECHO %%A
  7. )
  8. PAUSE
复制代码

作者: li_dongyun    时间: 2009-5-9 13:35

原帖由 inittab 于 2009-5-9 00:54 发表
练习一下.之前想了个more方案。发现不能正确处理空行。findstr支持


@echo off
set /p var=请输入要读取的行(用空格分隔):
set /p ff=请输入读取的文本文件:
for %%a in (%var%) do (
call :lp %%a
)
paus ...


这个可以识别空行,谢谢了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2