如何在Powershell中复制具有数组列表的对象[重复]

问题描述 投票:1回答:1

我正在尝试将对象列表导出为CSV,但是我的输出是:

Hd M.d.o. Montagem Eixo Traseiro,“ System.Collections.ArrayList”

对象是:

Class Departamento

{
    [String]$nome
    [Object]$pessoas

}

因此,第一个是字符串,第二个是ArrayList(Object)。我想知道如何导出我的arrayList,它具有我部门所有人的名字。谢谢。

powershell csv arraylist output export-to-csv
1个回答
2
投票

您应该将对象[Object] $ pessoas转换为字符串或我们的XML或JSON格式,而不是CSV。因为CSV无法显示您想要的对象(CSV只有“一个级别”)。如果您想使用JSON:

#Export
$obj | ConvertTo-Json -Depth 99 | Out-File -FilePath C:\Temp\test.json #-Depth 99 <-- Needed for the ArrayList(Object)

#Import
Get-Content -Path C:\Temp\test.json | ConvertFrom-Json

如果必须使用csv格式,则可以这样做(用-join将列表转换为字符串):

$obj | Select-Object -Property nome, @{n = 'pessoas'; e = {$_.pessoas -join ';'}} | Export-Csv -Path C:\Temp\test.csv
© www.soinside.com 2019 - 2024. All rights reserved.