在不同的目录中合并相同名称的.txt文件?

时间:2012-07-02 13:37:59

标签: powershell text merge command-prompt

我有一个文件夹,其中包含过去日期的子文件夹(例如20120601),在每个日期文件夹中都有一个名为test.txt的文件,以及另一个名为{{1}的文件}。如何将所有example.txt个文件合并为一个?

我尝试在Windows中执行此操作,并且可以访问Windows PowerShell和Windows命令处理器(test.txt)。最好的方法是什么?

我的层次结构看起来像这样:

cmd.exe

我认为它就像是

\Data
     \20120601
           test.txt
           example.txt
     \20120602
           test.txt
           example.txt
     \20120603
           test.txt
           example.txt
     \20120604
           test.txt
           example.txt
     \20120605
           test.txt
           example.txt

这可能吗?你能为目录指定一个通配符吗?

3 个答案:

答案 0 :(得分:5)

相当简单,实际上:

Get-ChildItem \Data -Recurse -Include test.txt |
  Get-Content |
  Out-File -Encoding UTF8 alltestfiles.txt

或更短:

ls \Data -r -i test.txt | gc | sc -enc UTF8 alltestfile.txt

这将首先收集所有test.txt个文件,然后阅读其内容并将组合内容写入新文件。

答案 1 :(得分:1)

列出所有文件。阅读一个文件的内容并将其添加到组合文件中。像这样,

cd data
gci -Recurse | ? { -not $_.psIsContainer -and $_.name -like "test.txt"}
$files | % { Add-Content -Path .\AllTests.txt -Value (Get-Content $_.FullName) }

答案 2 :(得分:0)

cat path\**\* > target_single_file这样的简单命令也可以。