如何在Windows上将多个文本文件中的特定行提取到单个txt文件中?

时间:2018-09-29 10:47:48

标签: batch-file command-line

我有300个名称不同的文件(.txt)。 我希望将每个文件的第二行复制到其文件名旁边,以复制为单个文本文件。 该文件的路径是D:\ WCR \

请帮助我在记事本中创建带有.Bat扩展名的脚本或在cmd中给出的命令

希望能早日收到答复。.

1 个答案:

答案 0 :(得分:0)

此批处理文件可用于此任务:

@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "SourceFolder=D:\WCR"
del "%SourceFolder%\SecondLines.log" 2>nul

for %%I in ("%SourceFolder%\*.txt") do call :ProcessFile "%%I"

endlocal
goto :EOF

:ProcessFile
for /F usebackq^ skip^=1^ delims^=^ eol^= %%L in (%1) do (
    >>"%SourceFolder%\SecondLines.log" echo %~nx1: %%L
    goto :EOF
)
goto :EOF

请注意,命令 FOR 始终忽略空行。因此,如果第二行是空行,则将下一个非空行写入LOG文件。

日志文件在源目录中创建。因此,日志文件的文件扩展名必须为txt

要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。

  • call /?
  • del /?
  • echo /?
  • endlocal /?
  • for /?
  • goto /?
  • set /?
  • setlocal /?

另请参阅: