我尝试在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 list?
答案 0 :(得分:1)
我认为您正在尝试将数据传输到Format-Table并将列作为参数。
将格式表放在没有管道数据的新行上。
答案 1 :(得分:0)
我发现了问题。我用+ =收集了列定义,得到了哈希表而不是数组。它应该是+ =,使用。即。
$Columns += ,@{Label=$_; Alignment='right'}
但还有另外一个问题,应该定义Expression,我还没有找到动态的方法...