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



我正在尝试将几个.csv文件(带有相同列(从不同目录加载到同一数组中。

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

这只是输出最后一个.csv加载,最好的方法是什么?

如有疑问,请阅读文档。Import-Csv CMDLET接受一系列路径字符串作为输入,因此您需要做的一切(假设所有CSV都具有相同的字段(就是这样:

$src = 'C:pathtoinput1.csv', 'C:pathtoinput2.csv', ...
$dst = 'C:pathtooutput.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

最新更新