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

[文本处理] [分享]实现对文件指定行的读取的批处理小函数(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

返回列表