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

PowerShell导出CSV如何将多行字符串拆分写入不同数据行

错误原因

两种方案均未正确构造逐行对应的结构化CSV记录,具体问题如下:

  • 第一种方案主动将换行替换为逗号,且将整个内容数组作为单个Orders属性的值传入对象,Export-Csv遇到数组类型的属性值时,会自动将数组合并为单个分隔字符串写入同一行,无法生成多行记录。
  • 第二种方案手动拼接引号的逻辑不符合CSV标准转义规则,且未逐行构造记录,直接将整组行数据作为单条内容传入Add-Content,必然出现内容合并、格式错乱。
正确实现代码
# 拆分多行字符串为独立行,去除首尾空格,过滤拆分产生的空行
$orderRows = $var2 -split '\r?\n' | ForEach-Object { $_.Trim() } | Where-Object { $_ }

# 逐行生成匹配CSV结构的对象,仅第一行填充Id number值
$csvRecords = for ($idx = 0; $idx -lt $orderRows.Count; $idx++) {
    [PSCustomObject]@{
        # PowerShell 5.1版本可将下一行替换为 "Id number" = if ($idx -eq 0) { $var1 } else { $null }
        "Id number" = $idx -eq 0 ? $var1 : $null
        "Orders"    = $orderRows[$idx]
    }
}

# 导出为标准格式CSV,指定UTF8编码避免特殊字符乱码
$csvRecords | Export-Csv -Path $filepath -NoTypeInformation -Encoding UTF8
导出效果

生成的CSV完全符合需求:

  • 首行为标准表头:"Id number","Orders"
  • 第一行数据Id number列填入89631,Orders列对应$var2第一行内容0236593
  • 后续所有数据行Id number列留空,Orders列依次对应$var2拆分后的每行内容
  • 自动完成CSV标准转义,不会出现引号异常、内容错位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:57:18