如何在Windows中使用CMD批量提取文本文件的第9行
批量提取TXT文件第9行到目标文件
以下是实现需求的批处理脚本,直接在目标目录下运行即可:
@echo off setlocal enabledelayedexpansion set "output_file=extracted_lines.txt" :: 清空输出文件(需要覆盖旧内容就保留,要追加就删掉此行) type nul > "%output_file%" for %%f in (*.txt) do ( set "line=" :: 跳过前8行,读取的第一行就是第9行 for /f "skip=8 tokens=* delims=" %%l in ('type "%%f"') do ( if not defined line ( set "line=%%l" :: 写入时可标注来源文件名,不需要就删掉[%%f] echo [%%f] !line! >> "%output_file%" goto :nextfile ) ) :nextfile ) echo 提取完成,结果已保存到 %output_file% endlocal
更简洁的替代方案(适合普通文本文件)
如果你的文件没有超长行、特殊控制字符这类情况,可以用more命令快速实现:
@echo off set "output_file=extracted_lines.txt" type nul > "%output_file%" for %%f in (*.txt) do ( :: more +8 跳过前8行,取第9行;findstr . 过滤空行(可选) more +8 "%%f" | findstr . >> "%output_file%" ) echo 提取完成
关键说明
skip=8:在for /f循环里跳过前8行,读到的第一行就是目标第9行enabledelayedexpansion:解决循环内变量实时读取的问题- 若不需要覆盖输出文件,删掉
type nul > "%output_file%"即可实现追加模式
内容的提问来源于stack exchange,提问作者telstone
相关产品推荐
相关产品推荐

