加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 如何从第x行到第y行读取文件(dos / win批处理文件)

发布时间:2020-12-14 03:53:00 所属栏目:Windows 来源:网络整理
导读:我有一系列日志文件. 我使用findstr解析这些日志文件以确定文本字符串的第一个实例,然后返回文件名和作为变量找到匹配的行木材. 然后我使用findstr来解析找到匹配的文件以获取另一个文本字符串.我将匹配的行号作为变量返回. 我现在有文件,起始行和结束行号.
我有一系列日志文件.

我使用findstr解析这些日志文件以确定文本字符串的第一个实例,然后返回文件名和作为变量找到匹配的行木材.

然后我使用findstr来解析找到匹配的文件以获取另一个文本字符串.我将匹配的行号作为变量返回.

我现在有文件,起始行和结束行号.

我需要在行号之间返回文本块.

所有输出都重定向到由变量casenotes表示的文本文件

这是我的代码:

:test
echo:            >> %casenotes%
echo:   test         >> %casenotes%
for /f "tokens=1,2* delims=:" %%a in ('findstr /N /C:"Optimize ThreadPools" *_MAGT_*.txt') do set startline=%%b & set filefoundin=%%a & goto part2
:part2
for /f "tokens=1,2* delims=:" %%a in ('findstr /N /C:"After optimization" %filefoundin%') do set endline=%%a & goto part3
:part3
echo:                       >> %casenotes%
echo: filefound in: %filefoundin%       >> %casenotes%
echo: startline is: %startline%     >> %casenotes%
echo: endline is:   %endline%       >> %casenotes%
echo:                       >> %casenotes%
     echo: now do something magic to read everything between lines %startline% and %endline% from %filefoundin% and redirect that output to %casenotes%

任何建议赞赏!

解决方法

试试这个:
@echo关闭

set file_to_read=read.txt
set /a start_line=1
set /a end_line=6
set outfile=outfile
set counter=1

break > %outfile%
setlocal ENABLEDELAYEDEXPANSION


for /f "delims=*" %%A  in (%file_to_read%) do (
    if !counter! GEQ !start_line! (
        echo %%A
        echo %%A >> !outfile!
    )
    set /A counter=!counter!+1

    if !counter! GEQ !end_line! (
        goto :endLoop
    )
)
:endLoop

这将不计算空行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读