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 这将不计算空行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读