2

我有一个文件夹,里面装满了过去日期的子文件夹(20120601例如),每个日期文件夹内都有一个名为 的文件test.txt,以及另一个名为example.txt. 如何将所有test.txt文件合并为一个?

我正在尝试在 Windows 中执行此操作,并且可以访问 Windows PowerShell 和 Windows 命令处理器 ( 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

我想它是这样的

copy *\test.txt alltestfiles.txt

那可能吗?您可以为目录指定通配符吗?

4

3 回答 3

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文件,然后读取它们的内容,最后将合并的内容写入新文件。

于 2012-07-02T14:18:46.700 回答
1

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

cd data
gci -Recurse | ? { -not $_.psIsContainer -and $_.name -like "test.txt"}
$files | % { Add-Content -Path .\AllTests.txt -Value (Get-Content $_.FullName) }
于 2012-07-02T14:14:12.817 回答
0

一个简单的命令cat path\**\* > target_single_file也可以。

于 2013-11-11T06:55:42.127 回答