PowerShell调用Invoke-RestMethod导出CSV出现System.object[]问题求助
问题原因
Export-Csv在导出对象时,如果对象属性值为数组类型,不会自动展开数组内容,默认仅输出数组的类型名称System.Object[]。你需要先将对应数组属性转换为逗号拼接的单个字符串再执行导出。
修正后实现代码
$scheduleResult = Invoke-RestMethod -Uri $scheduleURL -Method GET -Headers $headers if (!$Error) { # 追加自定义属性 $scheduleResult | Add-Member -MemberType NoteProperty -Name "Workspace" -Value $workspaceName $scheduleResult | Add-Member -MemberType NoteProperty -Name "Dataset" -Value $datasetName $scheduleResult | Add-Member -MemberType NoteProperty -Name "Dataset ID" -Value $datasetID # 处理数组类型列:将下方的Column1、Column2替换为你实际显示System.object[]的两列的真实列名 $scheduleResult | ForEach-Object { $_.Column1 = $_.Column1 -join ',' $_.Column2 = $_.Column2 -join ',' $_ } | Export-Csv -Path $refreshSchedPath -Append -Encoding UTF8 }
补充说明
- 如果数组元素本身可能包含逗号,可将拼接符替换为其他无冲突的符号,例如分号
;、竖线|等 - 若导出后中文出现乱码,可将
Encoding参数值替换为UTF8NoBOM(PowerShell 7+版本支持)或Default适配系统默认编码
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

