Объединить все файлы из каталога и подкаталогов в CMD - PullRequest
0 голосов
/ 21 мая 2018

Как мне объединить все файлы из каталогов и подкаталогов в CMD?

Я пробовал copy /b *.txt output.txt, но он не работает.

У меня есть следующие папки:

test
 - a1
 - a2 - a3 
      - a4 - a5 
 - a3

И в каждой папке у меня есть несколько текстовых файлов.

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Если бы вы могли рассмотреть возможность использования PowerShell, это собрало бы содержимое файла в один файл.

DEL "%TEMP%\output.txt" 2>NUL
powershell -NoProfile -Command ^
    "Get-ChildItem -File -Recurse | Get-Content | Add-Content $Env:TEMP/output.txt }"

Если вы хотите что-то более загадочное и похожее на оболочку cmd, можно использовать псевдонимы.

powershell -NoProfile -Command "gci -file -rec | gc | ac %TEMP%/out.txt }"
0 голосов
/ 22 мая 2018

Вы можете просто перебирать папки, что, вероятно, будет быстрее, чем перебор файлов!

Запустите это из \test в командной строке:

(For /D /R %A In (*) Do @Type "%A\*.txt" 2>Nul)>output.txt

Или из любого места, (кроме как внутри каталогов источников) , заменяя FullorRelativePath\ при необходимости:

(For /D /R "FullorRelativePath\test" %A In (*) Do @Type "%A\*.txt" 2>Nul)>output.txt

Другим методом будет использование FindStr, но потому, что в каждой строке добавляется имяфайл, вам нужно будет запустить его через For /F для вывода только требуемого токена (ов).

Запустить его из любого места, (кроме как в каталогах источников) , заменив FullorRelativePath\ при необходимости:

(For /F "Tokens=1* Delims=:" %A In ('FindStr /S "^" "FullorRelativePath\test\*.txt" 2^>Nul') Do @Echo(%B)>output.txt
0 голосов
/ 21 мая 2018

Ну, вы можете просто перебрать все текстовые файлы во всех папках и добавить их все в один и тот же выходной файл.Что-то вроде следующего:

del output.txt
for /R %F in (*.txt) do type "%F" >> output.txt

Возможно, вам также потребуется исключить output.txt из добавления (или поместить его в другое место):

for /R %F in (*.txt) do if not "%~nxF"=="output.txt" type "%F" >> output.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...