我有一个文件夹,其中包含过去日期的子文件夹(例如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
这可能吗?你能为目录指定一个通配符吗?
答案 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
这样的简单命令也可以。