标题: [文本处理] 【已解决】批处理如何读取或显示文本的指定一行或某几行 [打印本页]
作者: 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支持
- @echo off
- set /p var=请输入要读取的行(用空格分隔):
- set /p ff=请输入读取的文本文件:
- for %%a in (%var%) do (
- call :lp %%a
- )
- pause&goto :eof
- :lp
- for /f "tokens=1,* delims=:" %%i in ('findstr/n .* %ff%') do (
- if %%i equ %1 echo.%%j&goto :eof)
复制代码
[ 本帖最后由 inittab 于 2009-5-9 01:14 编辑 ]
作者: lxzzr 时间: 2009-5-9 05:50
没有过滤空行:- @ECHO OFF
- SETLOCAL ENABLEDELAYEDEXPANSION
- FOR /F "DELIMS=" %%A IN (A.TXT) DO (
- SET /A TEMP_N+=1
- IF !TEMP_N! == 2 ECHO %%A
- IF !TEMP_N! == 3 ECHO %%A
- )
- 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 |