[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

[ 本帖最后由 li_dongyun 于 2009-5-13 21:50 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

批处理小函数实现对文件指定行的读取
http://bbs.bathome.net/thread-4450-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

练习一下.之前想了个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 编辑 ]

TOP

没有过滤空行:
  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
复制代码

TOP

原帖由 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 ...


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

TOP

返回列表