You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell对象数组拆分导出为多行CSV文件?

解决PowerShell嵌套数组对象导出CSV的问题

当你的PowerShell对象包含数组类型的属性时,直接用Export-Csv会把数组显示为System.Object[],而非展开每个元素。要得到预期的CSV格式,需要先遍历每个对象的Address数组,为每个地址生成一条独立记录,再导出。

假设你的对象数组存储在$users变量中,执行以下代码即可:

$users | ForEach-Object {
    # 保存当前用户的固定属性
    $currentName = $_.Name
    $currentPhone = $_.Phone
    # 遍历每个地址,生成新的扁平对象
    $_.Address | ForEach-Object {
        [PSCustomObject]@{
            Name    = $currentName
            Address = $_
            Phone   = $currentPhone
        }
    }
} | Export-Csv -Path "output.csv" -NoTypeInformation -Encoding UTF8

代码说明

  • 外层ForEach-Object遍历每个用户对象,先保存Name和Phone的固定值
  • 内层ForEach-Object遍历当前用户的Address数组,为每个地址创建包含完整用户信息的新对象
  • 最后通过管道将所有扁平对象传给Export-Csv,-NoTypeInformation参数会去掉CSV开头的类型注释行,-Encoding UTF8确保字符编码正常

执行后生成的CSV文件就会和你预期的格式一致:

"Name","Address","Phone"
"Bob","adr1","123"
"Bob","adr2","123"
"Bob","adr3","123"
"Alice","adr4","456"
"Alice","adr5","456"
"Alice","adr6","456"

内容的提问来源于stack exchange,提问作者Bozz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:15:46