如何在powershell中加入两个目录中的多个文件?
How to join multiple files in two directories in powershell?
我有 2 个文件夹 OldData 和 NewData。在这两个文件夹中,我都有数千个同名的 csv 文件。寻找一种最有效的方法来合并两个文件夹中具有相同名称的文件并将它们存储在 NewData 文件夹中。
示例:
OldData folder:
test1.csv
test2.csv
.
.
新数据文件夹:
test1.csv (same names than in OldData folders but not exactly the same content)
test2.csv
.
.
在 NewData 文件夹中应该有来自两个文件夹的合并文件。 OldData 文件夹中的文件有 header。新数据文件夹中的文件没有 header,但它们具有相同的结构(相同的列数)。
感谢您的帮助。
像这样的东西应该可以工作:
Get-ChildItem 'C:\OldData\*.csv' | % {
$dst = Join-Path 'C:\NewData' $_.Name
Import-Csv $_.FullName | Export-Csv $dst -Append
}
编辑: 如果 OldData 中的文件有 headers 而 NewData 中的文件没有,我会将新文件附加到旧文件中,不是相反。
Get-ChildItem 'C:\NewData\*.csv' | % {
$dst = Join-Path 'C:\OldData' $_.Name
if (Test-Path -LiteralPath $dst) {
Get-Content $_.FullName | Add-Content $dst
}
}
我有 2 个文件夹 OldData 和 NewData。在这两个文件夹中,我都有数千个同名的 csv 文件。寻找一种最有效的方法来合并两个文件夹中具有相同名称的文件并将它们存储在 NewData 文件夹中。
示例:
OldData folder:
test1.csv
test2.csv
.
.
新数据文件夹:
test1.csv (same names than in OldData folders but not exactly the same content)
test2.csv
.
.
在 NewData 文件夹中应该有来自两个文件夹的合并文件。 OldData 文件夹中的文件有 header。新数据文件夹中的文件没有 header,但它们具有相同的结构(相同的列数)。
感谢您的帮助。
像这样的东西应该可以工作:
Get-ChildItem 'C:\OldData\*.csv' | % {
$dst = Join-Path 'C:\NewData' $_.Name
Import-Csv $_.FullName | Export-Csv $dst -Append
}
编辑: 如果 OldData 中的文件有 headers 而 NewData 中的文件没有,我会将新文件附加到旧文件中,不是相反。
Get-ChildItem 'C:\NewData\*.csv' | % {
$dst = Join-Path 'C:\OldData' $_.Name
if (Test-Path -LiteralPath $dst) {
Get-Content $_.FullName | Add-Content $dst
}
}