创建列表标题并组合

时间:2017-01-18 00:19:07

标签: powershell

我想创建一堆列表,其中包含一个标题,列表成员的大小是动态的。

然后我想将列表组合成一个数组,或者csv用于导出。

我已经尝试了

$a = new-object psobject
$a | add-member ...

但是这个值不接受' system.array'的变量。类型,对象显示为一个连续的字符串,而不是两个单独的行上的对象。

我试过了:

$a = New-Object System.Collections.Generic.List[System.Object]
$a.add()

但我无法使用此列表创建标题。

以下是我希望最终产品看起来像

的样本
col1     col2     col3
admin    karl     john
jake     rupert   pinko
drumpf            deckard

其中列的名称是从域中的不同服务器提取的,并且每次运行脚本时都会有动态长度 - 然后我想将其导出为csv。

谢谢,

1 个答案:

答案 0 :(得分:-1)

尝试类似这样的事情

#solution 1
$yourlist=@()
$yourlist+=[pscustomobject]@{Header1="Val1.1";Header2=Get-Date;Header3=15}
$yourlist+=[pscustomobject]@{Header1="Val1.2";Header2=(Get-Date).AddDays(1);Header3=30}
$yourlist

#solution 2
$yourlist=@()
$yourlist+=New-Object -TypeName "psobject" -Property  @{Header1="Val2.1";Header2=Get-Date;Header3=15}
$yourlist+=New-Object -TypeName "psobject" -Property  @{Header1="Val2.2";Header2=(Get-Date).AddDays(1);Header3=30}
$yourlist

#solution 3
$yourlist = New-Object System.Collections.Generic.List[System.Object]
$yourlist.add((New-Object -TypeName "psobject" -Property  @{Header1="Val3.1";Header2=Get-Date;Header3=15}))
$yourlist.add((New-Object -TypeName "psobject" -Property  @{Header1="Val3.2";Header2=(Get-Date).AddDays(1);Header3=30}))
$yourlist

#solution 4
$element1 = new-object psobject
$element1 | add-member -MemberType NoteProperty -Name "Header1" -Value "Val4.1" 
$element1 | add-member -MemberType NoteProperty -Name "Header2" -Value (Get-Date) 
$element1 | add-member -MemberType NoteProperty -Name "Header3" -Value 15

$element2 = new-object psobject
$element2 | add-member -MemberType NoteProperty -Name "Header1" -Value "Val4.2" 
$element2 | add-member -MemberType NoteProperty -Name "Header2" -Value (Get-Date).AddDays(1) 
$element2 | add-member -MemberType NoteProperty -Name "Header3" -Value 30 

$yourlist=@()
$yourlist+=$element1
$yourlist+=$element2
$yourlist