如何在命令提示符下编写批处理脚本以从多个 txt 文件中提取第 n 行?

how to write batch script on command prompt to extract nth line from multiple txt files?

我应该在 Windows 命令提示符下编写什么批处理脚本以从第 20 行的 200 个文本文件中提取值并将它们放入名为“master.txt”的新文本文件中

每个文本文件都有数百行,我只需要第20行的值。

例如

文本文件名:

test1.edit.txt

test2.edit.txt

test3.edit.txt

......

示例文件:

第 1 行 - xxxxx

第 2 行 - xxxxx ......

第 20 行- 属性100

结果:

属性 100(来自 test1.edit.txt)

属性 200(来自 test2.edit.txt)

属性 300(来自test3.edit.txt)......

提前致谢

如果你安装了 cigwin,写一个简单的 bash 脚本 看起来像:

for f in `ls f?`; do
   head -9 $f | tail -1
done

更改“f?”找到你的文件名是什么(我的 是 f1、f2、f3)。将脚本另存为“line9”并将 运行 保存为 bash第9行

如果您没有 cygwin,请考虑安装它。 :-) 它确实有很多有用的 unixish 工具。

将此代码复制到批处理文件中。将 TXT 文件所在的文件夹拖到批处理文件中。它应该将所有“第 20 行”文本保存到名为“Result.txt”

的文件中
@echo off

if /i exist "%~1" (if /i not exist "%~1\" exit) else (exit)

set "Folder=%~1"
if /i exist "Result.txt" del /q "Result.txt"

pushd "%Folder%"
for /f "delims=" %%a in ('dir /b *.txt') do Call :GetLine "%%a"

popd
cmd.exe /c start "" notepad Result.txt
exit

:GetLine
for /f "skip=19 eol= delims=" %%a in ('type "%~1"') do (
                                                        echo %%a
                                                        >>%~dp0Result.txt echo %%a
                                                        goto :EOF
                                                       )
goto :EOF