我有大约1000个同名但内容不同的文本文件。我想根据他们的名字合并它们。 例如
Company1.txt ,Company1.txt,Company1.txt
Company2.txt, Company2.txt
Company3.txt, Company3.txt, Company3.txt, Company3.txt
Company1的所有实例都包含不同的内容。我想将所有Company1.txt合并到一个文件中,并希望对Company2.txt,Company3.txt等重复相同的操作。
我该怎么办?
Company1.txt is present in D:\TextFiles\Part1
Company1.txt is present in D:\TextFiles\Part2
Company1.txt is present in D:\TextFiles\Part3
其他文本文件的情况也是如此。
答案 0 :(得分:1)
我创建了一个临时文件夹:mergeTestFiles
,然后是三个子文件夹:part1,part2,part3
然后在每个文件夹中我创建了一个:Doc1.txt文件:
The Doc1.txt in the part1 folder has the line: "part 1"
The Doc1.txt in the part2 folder has the line: "part 2"
The Doc1.txt in the part3 folder has the line: "part 3"
即: mergeTestFiles \ part1的\ Doc1.txt
在电源shell中 - 这是文件结构。
PS C:\ temp \ mergeTestFiles> ls -Recurse
Directory: C:\temp\mergeTestFiles
模式LastWriteTime长度名称
---- ------------- ------ ----
d ---- 16/01/2018 16:26 part1
d ---- 16/01/2018 16:26第2部分
d ---- 16/01/2018 16:26 part3
Directory: C:\temp\mergeTestFiles\part1
模式LastWriteTime长度名称
---- ------------- ------ ----
-a --- 16/01/2018 16:27 18 Doc1.txt
Directory: C:\temp\mergeTestFiles\part2
模式LastWriteTime长度名称
---- ------------- ------ ----
-a --- 16/01/2018 16:27 18 Doc1.txt
Directory: C:\temp\mergeTestFiles\part3
模式LastWriteTime长度名称
---- ------------- ------ ----
-a --- 16/01/2018 16:27 18 Doc1.txt
在power shell中我可以运行:
Get-Content .\part*\Doc1.txt
part 1
part 2
part 3
显示合并在一起的所有内容(注意路径中的*)
希望这有帮助
如果你的某个文件夹上有一套完整的文件,你可以使用他们的文件名来驱动它。
注意:子文件夹part1有一个所有文件的实例,因此我们将使用它来获取名称,并驱动合并。
像这样: Foreach(ls part1中的$文件){Get-Content。\ part * \ $ file}我已将Doc2.txt添加到part1子文件夹。
PS C:\temp\mergeTestFiles> Foreach($file in ls part1) { Get-Content .\part*\$file }
part 1
part 2
part 3
file Doc2.txt in part1 subfolder
如果您的文件名格式相同
即。 公司{number} .txt
在你的问题中你可以使用这样的范围:
Foreach(1..10中的$ file){Get-Content。\ part * \ Doc $ file.txt}
这也将确保合并中文件的排序