我正在尝试将文件夹中的所有文本文件合并到一个csv文件中,每个文本文件的名称都在新文件中的内容之上。我希望它像这样出来(在合并之前的文本文件中,文本出现在下面的列表中,所以我希望文本以与文本文件中存在的相同方式出现在csv文件中):
textfile1.txt
-content content -content content -content content
textfile2.txt:
-content content -content content -content content
textfile3.txt:
-content content -content content -content content
然而,它目前正是这样出现的:
textfile1.txt:
content content content content content content
textfile2.txt:
content content content content content content
textfile3.txt:
content content content content content content
我的代码是:
dir "C:\text files\*.*" | ForEach {
$variable = "$($_.Name)`n$(Get-content $_.FullName)" |Add-Content
"C:\text files\output\output.csv"}
如果有人可以帮我格式化Add-Content
所以它不会将整个文件分组成一个字符串,我会非常感激!
答案 0 :(得分:0)
这实际上是一个非常简单的修复方法。我们获取文件名并将其添加到文件中,然后获取文件内容并添加它们,因此总代码如下所示:
dir "C:\text files\*.*" | ForEach {
Add-Content -value $_.Name -Path .\Output.txt
Get-Content $_.FullName | Add-Content -Path .\Output.txt
}
结果?
TextFile1.txt
-content content
-content content
-content content
TextFile2.txt
-content content
-content content
-content content
TextFile3.txt
-content content
-content content
-content content
现在,如果您想添加一些注释或明确新文件的开头位置,该怎么办?我们只是将第2行的Add-Content行更改为类似Add-Content -value "---FileName: $($_.Name)------" -Path .\Output.txt
的内容,为我们提供如下输出:
---FileName: TextFile1.txt------
-content content
-content content