powershell将HASTABLE数组转换为csv
做过谷歌搜索,但没有找到合适的答案 我有powershell将HASTABLE数组转换为csv,powershell,Powershell,做过谷歌搜索,但没有找到合适的答案 我有 $a = @( @{"name"="a"; "value"="1"}, @{"name"="b"; "value"="2"} ) Foreach($x in $a){ $obj = New-object psobject Foreach($key in $x.keys) { $obj ¦ add-memb
$a = @(
@{"name"="a"; "value"="1"},
@{"name"="b"; "value"="2"}
)
Foreach($x in $a){
$obj = New-object psobject
Foreach($key in $x.keys) {
$obj ¦ add-member -membertype NoteProperty -name $key -value $x[$key]
}
$obj ¦ export-cvs test.csv
}
我在出租车里只排最后一行。我想要每次都覆盖csv文件的所有行。每次尝试使用convertTo CSV(而不是导出CSV)并将其附加到文件。事实上,导出CSV不会附加(
- 将导出Csv移到foreach{}之外(但需要将其放入子表达式中,因为默认情况下无法将其管道化)
- 改用Foreach对象并获得相同的结果
# Using $( foreach ($x in $a) {} ) | Export-Csv
$(Foreach($x in $a){
New-object psobject -Property $x
}) | Export-Csv test.csv
# Using $a | Foreach-Object {} | Export-Csv
$a | ForEach-Object {
New-Object PSObject -Property $_
} | Export-Csv test.csv
不能将同名元素添加到PSObject中两次。你可以用一个自定义的表格来原谅我的无知,但是如何附加?我确实得到了关于导出csv和转换csv的帮助,但没有看到append?KB对标题的说明。使用这种方法,您不会得到想要的,因为每个converttocsv调用的输出都有自己的头。BartekB的解决方案是,使用哈希表创建自定义对象,并在这些对象集上使用导出csv,这是一个更好的解决方案。为了完整性起见,我打算使用set content和-append开关来完成输出。我应该说得更清楚些。