【发布时间】:2017-09-25 17:40:17
【问题描述】:
我正在尝试将多个 .csv 文件(具有相同的列)从不同的目录加载到同一个数组中。
$csv1 = Import-Csv "PATH1"
$csv1 = Import-Csv "PATH2"
$csv1 | Export-Csv C:\test.csv
这只是输出最后加载的 .csv,最好的方法是什么?
【问题讨论】:
-
嘿,如果我可以停止导入第二个 .csv 文件的标题,这应该是诀窍?
-
发现我可以使用第二个 csv 文件上的 += 将其添加到数组中。谢谢
-
@TessellatingHeckler -
Get-Content ...| Set-Content ...可能“有效”,但如果它是标准格式的 CSV(第一行是标题),他最终会在中间有一条重复他的标题的记录,例如,Name="Name" Address="Address" 等。他使用+=的解决方案更好。 -
嘿@JeffZeitlin,如果我想每行添加一个额外的列,说明文件来自哪个路径,我该怎么做?
-
@JeffZeitlin 当您可以在
Add-Member或Select-Object上使用-PassThru来创建计算属性时,无需创建新对象。 @Bunion 这是一个添加该属性的衬里:($(Import-Csv "PATH1" | Add-Member -Name "SourcePath" -Value "PATH1" -MemberType NoteProperty -PassThru) + $(Import-Csv "PATH2" | Add-Member -Name "SourcePath" -Value "PATH2" -MemberType NoteProperty -PassThru)) | Export-CSV C:\test.csv
标签: powershell csv merge