2017-09-29 7 views
0

Ich versuche, in Powershell zweidimensionale Tabelle zu formatieren:Format-Table in Powershell: dynamisch Spalten konfigurieren

$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 

Aber es funktioniert nicht. Ich erhalte Fehler mit $ Spalten:

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

Ich habe eine https://technet.microsoft.com/de-de/library/ee692794.aspx Probe gefunden

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

Wie kann ich dynamisch so $ eine Liste erstellen?

+0

'$ Columns = $ ContentServeres.Keys | Sortier-Objekt | Foreach-Objekt {@ {Label = $ _; Ausrichtung = 'richtig'}} ' – PetSerAl

Antwort

1

Ich denke, Sie versuchen, Daten in Format-Tabelle und geben Sie auch Spalten als Parameter.

Setzen Sie die Format-Tabelle auf eine neue Zeile ohne Piping-Daten.

0

Ich habe das Problem gefunden. Ich habe Spalten Definition mit + = gesammelt und Hashtable statt Array erhalten. Es sollte + =, verwendet werden. I.e.

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

Aber es gibt ein weiteres Problem, Ausdruck definiert werden soll, und ich habe noch nicht gefunden, wie es dynamisch zu tun ...

Verwandte Themen