连接CMD中目录和子目录中的所有文件

时间:2018-05-21 07:38:07

标签: cmd

如何连接CMD中目录和子目录中的所有文件?

我已经尝试了copy /b *.txt output.txt,但它无效。

我有这些文件夹:

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

在每个文件夹中我都有一些txt文件。

3 个答案:

答案 0 :(得分:2)

好吧,您可以简单地遍历所有文件夹中的所有文本文件,并将它们全部附加到同一个输出文件中。如下所示:

output.txt

您可能还需要排除添加for /R %F in (*.txt) do if not "%~nxF"=="output.txt" type "%F" >> output.txt (或将其放在其他位置):

public function __toString()
{
       return (string) $this->getCategory();
 }

答案 1 :(得分:1)

如果您可以考虑使用PowerShell,则会将文件内容收集到一个文件中。

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

如果你想要一些更隐秘和cmd shell类似的东西,可以使用别名。

powershell -NoProfile -Command "gci -file -rec | gc | ac %TEMP%/out.txt }"

答案 2 :(得分:1)

您可以迭代文件夹,这可能比迭代文件更快!

在提示时从\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