Powershell:输出对象集合

时间:2014-03-24 23:40:51

标签: powershell

我有一组具有属性的对象:

$col = @{....}

,数据是这样的:

id     name     items
---    ----     -----
01     a        (a, b, c, d)
02     ....

项是字符串数组。如果我输出$ col的内容,则数据显示如上。有没有办法输出这样的值?

id     name     items
---    ----     -----
01     a        a
                b
                c
                d
02     b         
03     c        c1
04     d        d1
                d2
05 ...

更新后,items列可能包含空,一个或多个项目。

1 个答案:

答案 0 :(得分:5)

首先,我设置一些近似于你的对象,用以下方法进行测试:

$col = @(

    (New-Object –TypeName PSObject –Prop @{'id'='01';'name'='a';'items'=@(1,2,3)}),
    (New-Object –TypeName PSObject –Prop @{'id'='02';'name'='b';'items'=@(1,2,3)}),
    (New-Object –TypeName PSObject –Prop @{'id'='03';'name'='c';'items'=@(1,2,3)})
    )

然后打印出来:

$col

name id items    
---- -- -----    
a    01 {1, 2, 3}
b    02 {1, 2, 3}
c    03 {1, 2, 3}

然后为'项目'定义自定义格式规则。 column,使用换行符将收集项连接在一起:

$itemFormat = @{Expression={($_.items -join "`n")};Label="Items";width=6}

然后使用-Wrap打印带有Format-Table的集合,以允许它包装长行:

$col | Format-Table id,name,$itemFormat -Wrap -AutoSize

给出了:

id name Items
-- ---- ------
01 a    1     
        2     
        3     
02 b    1     
        2     
        3     
03 c    1     
        2     
        3