- 帖子
- 573
- 积分
- 1070
- 技术
- 156
- 捐助
- 0
- 注册时间
- 2022-6-20
|
[文本处理] [分享]实现对文件指定行的读取的批处理小函数(ReadLine.bat)“改进版”
( 原帖见 http://www.cn-dos.net/forum/viewthread.php?tid=28639 )
( 转帖见 http://bbs.bathome.net/thread-4450-1-1.html )
声明:版权属于原作者,本人只作自以为是的擅自改动,但目前自用满足所有情况,还请各位大神多指教。
ReadLine.bat
@echo off
@rem 调用方式:Call :ReadLine <文件名> <跳过行数> <读取行数>
:ReadLine <txtFileName> <skipline> <readline>
:: %1 txtFileName 待读入文件
:: %2 skipline 跳过行数,空或非有效数字则默认为0
:: %3 readline 读取行数,空或非有效数字则默认为0,0则表示为剩余的全部
setlocal EnableDelayedExpansion
set /a loop=0
set /a skipline=%~2+0
set /a readline=%~3+0
if %skipline% lss 1 (
set "for_var=usebackq tokens=1 delims="
) else (
set "for_var=usebackq tokens=1 skip=%skipline% delims="
)
if %readline% lss 1 (
set /a step=0
set /a readline=1
) else (
set /a step=1
)
for /f "%for_var%" %%a in ("%~f1") do (
set /a loop+=step
if !loop! leq %readline% (echo %%a) else goto :eof
)
goto :eof |
|