2017-09-29 8 views
0

j'essaie de formater deux dimensions dans le tableau PowerShell:Format-Table PowerShell: configurer dynamiquement des colonnes

$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 

Mais cela ne fonctionne pas. J'obtiens l'erreur avec $ Colonnes:

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

J'ai trouvé un échantillon https://technet.microsoft.com/de-de/library/ee692794.aspx

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

Comment puis-je créer dynamiquement une liste telle $?

+0

'$ columns = $ ContentServeres.Keys | Sort-Object | Foreach-Object {@ {Label = $ _; Alignement = 'droit'}} ' – PetSerAl

Répondre

1

Je pense que vous essayez d'acheminer des données dans Format-Table et également donner des colonnes en tant que paramètres.

Mettez la table de format sur une nouvelle ligne sans données de tuyauterie.

0

J'ai trouvé le problème. J'ai collecté la définition des colonnes avec + = et j'ai obtenu la hashtable au lieu du tableau. Cela devrait être + =, utilisé. C'est à dire.

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

Mais il y a un autre problème, l'expression doit être définie et je ne l'ai pas encore trouvé comment le faire de façon dynamique ...