source

해시 테이블 배열의 Format-Table

factcode 2023. 9. 11. 22:16
반응형

해시 테이블 배열의 Format-Table

Format-Table cmdlet으로 해시 테이블 배열을 어떻게 포맷합니까?

예:

$table = @( @{ColumnA="Able";    ColumnB=1},
            @{ColumnA="Baker";   ColumnB=2},
            @{ColumnA="Charlie"; ColumnB=3} )
$table | Format-Table

원하는 출력:

ColumnA                        ColumnB
----                           -----
Able                           1
Baker                          2
Charlie                        3

실제.출력:

Name                           Value
----                           -----
ColumnA                        Able
ColumnB                        1
ColumnA                        Baker
ColumnB                        2
ColumnA                        Charlie
ColumnB                        3

파워셸 V4 사용:

$table = @( @{ColumnA="Able";    ColumnB=1},
            @{ColumnA="Baker";   ColumnB=2},
            @{ColumnA="Charlie"; ColumnB=3} )

$table | ForEach {[PSCustomObject]$_} | Format-Table -AutoSize


ColumnA ColumnB
------- -------
Able          1
Baker         2
Charlie       3

V2 솔루션:

$(foreach ($ht in $table)
 {new-object PSObject -Property $ht}) | Format-Table -AutoSize

이를 수행할 수 있는 다른 방법 발견:

$table | Select-Object -Property (
    $table.Keys | Group-Object | Select-Object -ExpandProperty Name)

하지만 @mjolinor의 대답과 비교하면, 이렇게 하는 것은 다음과 같습니다.

  • 좀더 장황하게
  • 10,000개의 요소에 대한 빠른 테스트를 기반으로 한 약 10,000배의 속도로 느려짐

캐스팅 대상[PSCustomObject]가야 할 길인 것 같습니다.

언급URL : https://stackoverflow.com/questions/20874464/format-table-on-array-of-hash-tables

반응형