0

我尝试在 PowerShell 中格式化二维表:

$ContentServeres.Keys | Sort-Object | Foreach-Object {
    $Columns += @{Label=$_; Alignment='right'}
}

$ClientServeres.Keys | Sort-Object | Foreach-Object {
    PROCESS {
        $obj = $ClientServeres.Get_Item($_)

        $serverOutObj = New-Object PSObject
        $serverOutObj | Add-Member NoteProperty Client ("$($_)`t`t")

        $ContentServeres.Keys | Sort-Object | Foreach-Object {
            $serv = $obj.Get_Item($_)
            $serverOutObj | Add-Member NoteProperty $_ ("{0:N0}" -f $serv.SumLength)
        }
        Write-Output $serverOutObj
    }
} | Format-Table $Columns -AutoSize

但它不起作用。我收到 $Columns 错误:

InvalidArgument: (:) [Format-Table], NotSupportedException

我找到了一个示例https://technet.microsoft.com/de-de/library/ee692794.aspx

$a = @{Label="ColA"; Alignment='right'}, @{Label="ColB"; Alignment='right'}
...
Format-Table @a ...

如何动态创建这样的 $a 列表?

4

2 回答 2

1

我认为您正在尝试将数据传输到 Format-Table 并将列作为参数。

将格式表放在没有管道数据的新行上。

于 2017-09-29T18:25:13.400 回答
0

我发现了问题。我用 += 收集了列定义并得到了哈希表而不是数组。它应该是 += ,使用。IE

    $Columns += ,@{Label=$_; Alignment='right'}

但是还有另一个问题,应该定义表达式,我还没有找到如何动态地做到这一点......

于 2017-09-30T08:42:16.980 回答