中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 12:12
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助]怎么实现从一个文件中读取指定行数的文本
可打印版本  899 / 3
第1楼 naughtypack 发表于 2008-05-07 22:37
初级用户 发帖 25 积分 68
求助]怎么实现从一个文件中读取指定行数的文本
我现在有一个文件里面的格式是
419720 168950 168940 168939 168945 169105 169165 169177
419721 169105 169165 169177 169189 169104 169164 169176
419722 169104 169164 169176 169188 169103 169163 169175
419723 169103 169163 169175 169187 169102 169162 169174
419724 169102 169162 169174 169186 169101 169161 169173
419725 169101 169161 169173 169185 169100 169160 169172
419726 169100 169160 169172 169184 169099 169159 169171
。。。。。。。
很多行
我现在想用批处理把他从第一行到1000行写到另外一个文件里面比如就叫2.dat
或者从第二行到100行写到另外一个新的文件3.dat.请问有什么办法没,谢谢
第2楼 slore 发表于 2008-05-07 22:40
铂金会员 发帖 2,478 积分 5,212
看下for的帮助……和论坛的例子
第3楼 bat-zw 发表于 2008-05-07 22:42
金牌会员 发帖 1,276 积分 3,105


[ Last edited by zw19750516 on 2008-5-7 at 10:44 PM ]
第4楼 HAT 发表于 2008-05-07 22:47
版主 发帖 5,017 积分 9,023
有人贴过:

经常要对文件的指定行进行读取,特写了一个读取文件指定行的小程序段(ReadLine.Bat),方面以后调用。

使用也比较简单:"Call ReadLine <文件名> <跳过的行数> <读取行数>"就可以了。比如在一个批处理里加上一句"Call ReadLine a.txt 5 7",那么将跳过a.txt文件的前5行,显示下面的7行字符,也包含空行。也可以不指定第三个参数。

ReadLine.Bat

@echo off&SetLocal ENABLEDELAYEDEXPANSION
if "%1"=="" (goto --help) else (set file=%~s1)
if "%2"=="" (set first="delims=: tokens=1*") else (set first="skip=%2 delims=: tokens=1*")
if "%3"=="" (
for /f %first% %%a in ('findstr /n .* %file%') do echo/%%b
goto :EOF
)
set last=%3
set loop=0
for /f %first% %%a in ('findstr/n .* %file%') do (
if not defined lxmxn (echo/%%b&set /a loop+=1) else (goto :EOF)
if "!loop!"=="%last%" set lxmxn=Nothing
)
GOTO :EOF

:--help
echo/======================================
echo/本程序段需要带参数才能正常运行
echo/&echo/Usage:&echo/Call ReadLine ^<文件名^> ^<跳过行数^> ^<读取行数^>
echo/&echo/例如:call ReadLine aa.txt 5 7 ,将跳过aa.txt文件的前5行,读取下面的7行字符
echo/&echo/如果^<跳过行数^>没有指定,就从文件第一行读取
echo/&echo/指定^<读取行数^>时必须指定^<跳过行^>
echo/======================================
goto :eof
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023