循环遍历子文件夹,并在其中合并文本文件-将合并的文件输出到文件夹 [英] Loop Through Subfolders And Combine Text files Within - Output Combined File To a Folder
问题描述
我有一个子文件夹目录.每个文件中都包含文本文件.我正在尝试合并在每个子文件夹中找到的文件.
I have a directory of subfolders. Each one contains text files within it. I am trying to combine the files found in each subfolder.
示例:
子文件夹1→ a.txt + b.txt + c.txt → SubFolder1Merged.txt
子文件夹2→ x.txt + y.txt + z.txt → SubFolder2Merged.txt
SubFolder 1 → a.txt + b.txt + c.txt → SubFolder1Merged.txt
SubFolder 2 → x.txt + y.txt + z.txt → SubFolder2Merged.txt
我已引用此线程.
这是我到目前为止所拥有的:
This is what I have so far:
$startingDir = "C:\Users\WP\Desktop\TextFiles"
function CombineLogs {
param([string]$startingDir)
dir $startingDir -Filter *.txt | Get-Content |
Out-File (Join-Path $startingDir COMBINED.txt)
dir $startingDir | ?{ $_.PsIsContainer } | %{ CombineLogs $_.FullName }
}
CombineLogs 'C:\Users\WP\Desktop\CombinedTextFiles' #output the combined text files here
我在CombinedTextFiles中生成了一个combined.txt
-但没有合并单个文件.
文件也为空.
I get a combined.txt
generated in CombinedTextFiles - but not individual files merged.
Also the file is empty.
我只是想遍历每个子文件夹,合并每个文件夹中的文本文件,然后输出到我的CombinedTextfiles文件夹.
I simply want to loop through each subfolder, merge the text files within each folder, then output to my CombinedTextfiles Folder.
推荐答案
function CombineLogs
{
param([string] $startingDir)
$outputFile = (Split-Path $startingDir -Leaf) + "COMBINED.txt"
dir $startingDir -Filter *.txt |
Get-Content |
Out-File (Join-Path $outputDir $outputFile)
dir $startingDir |?{ $_.PsIsContainer } | %{ CombineLogs $_.FullName }
}
$outputDir ='C:\Users\WP\Desktop\CombinedTextFiles' # output the combined text files here
CombineLogs "C:\Users\WP\Desktop\TextFiles"
以上代码段可以解决TextFilesCOMBINED.txt
和NewCOMBINED.txt
,但是在下一种情况下不能解决ABCCOMBINED.txt
或xyzCOMBINED.txt
:
Above code snippet would solve TextFilesCOMBINED.txt
and NewCOMBINED.txt
however does not solve ABCCOMBINED.txt
nor xyzCOMBINED.txt
in next scenario:
C:\Users\WP\Desktop\TextFiles\ABC\ABC
C:\Users\WP\Desktop\TextFiles\ABC\xyz\ABC
C:\Users\WP\Desktop\TextFiles\New
C:\Users\WP\Desktop\TextFiles\xyz\ABC
这篇关于循环遍历子文件夹,并在其中合并文本文件-将合并的文件输出到文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!