Как извлечь конкретную строку из нескольких текстовых файлов в один текстовый файл в Windows? - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть 300 файлов (.txt) с другим именем.Я хочу, чтобы 2-я строка каждого файла копировалась рядом с его именем в один текстовый файл.Путь к файлу: D: \ WCR \

Пожалуйста, помогите мне с сценарием, который будет создан в блокноте с расширением .Bat, или с командами, которые будут даны в cmd

. Ранний ответ приветствуется.. !!

1 Ответ

0 голосов
/ 29 сентября 2018

Этот пакетный файл можно использовать для этой задачи:

@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 /?

См. Также:

...