【问题标题】:Convert array of objects with mismatched properties to csv将具有不匹配属性的对象数组转换为 csv
【发布时间】:2021-07-11 12:04:25
【问题描述】:
简而言之,如何转换这个
$al = New-Object System.Collections.ArrayList
$al+=[PSCustomObject]@{prop1="value1"; prop2="value2"}
$al+=[PSCustomObject]@{prop1="value11"; prop3="value33"}
$al+=[PSCustomObject]@{prop4="value444"}
进入这个
【问题讨论】:
标签:
arrays
powershell
csv
【解决方案1】:
使用psobject隐藏成员集在导出前发现所有属性名称:
$propertyNames = $al |ForEach-Object {
# Discover all the object's properties
$_.psobject.Properties |ForEach-Object {
# Get each property name
$_.Name
}
} |Sort-Object -Unique
# Now the CSV will have a column for every single unique property name
$al |Select-Object $propertyNames |Export-Csv -Path $Path1 -NoTypeInformation