将几个.csv文件合并到一个数组中

时间:2017-04-27 19:05:11

标签: powershell csv merge

我试图将几个.csv文件(具有相同的列)加载到不同目录的同一个数组中。

$csv1 = Import-Csv "PATH1"
$csv1 = Import-Csv "PATH2"
$csv1 | Export-Csv C:\test.csv

这只输出最后加载的.csv,这是最好的方法吗?

1 个答案:

答案 0 :(得分:2)

如有疑问,请阅读documentationImport-Csv cmdlet接受一个路径字符串数组作为输入,因此您需要做的就是(假设所有CSV具有相同的字段)是这样的:

$src = 'C:\path\to\input1.csv', 'C:\path\to\input2.csv', ...
$dst = 'C:\path\to\output.csv'

Import-Csv $src | Export-Csv $dst -NoType

如果您想要一个包含源文件路径的附加列,则需要执行一些额外的步骤:

$src | ForEach-Object {
  $path = $_
  Import-Csv $path | Select-Object *,@{n='Path';e={$path}}
} | Export-Csv $dst -NoType
相关问题