Powershell 添加行到 table 导致两个 tables
Powershell adding row to table results in two tables
我在尝试向 table 添加行时遇到了一点问题。我将原始值存储在一个变量中,并使用自定义对象将它们转换为 table 格式。
$table = @( @{ColumnA="Able"; ColumnB=1; ColumnC=4},
@{ColumnA="Baker"; ColumnB=2; ColumnC=3},
@{ColumnA="Charlie"; ColumnB=3; ColumnC=5} )
$t2 = $table | ForEach {[PSCustomObject]$_} | Format-Table -AutoSize
之后,我将一个新对象存储在一个变量中并将其附加到 table 变量。
$newRow = New-Object PsObject -Property @{ ColumnA = "James" ; ColumnB = 4 ; ColumnC = 12 }
$t2 += $newRow
$t2
我的期望是得到以下结果:
ColumnC ColumnB ColumnA
------- ------- -------
4 1 Able
3 2 Baker
5 3 Charlie
12 4 James
但是我收到的是这样的:
ColumnC ColumnB ColumnA
------- ------- -------
4 1 Able
3 2 Baker
5 3 Charlie
ColumnC ColumnB ColumnA
------- ------- -------
12 4 James
如何将所有行合并为一个table?
谢谢,丹尼尔
你有一个哈希表数组。您需要附加另一个哈希表:
$table += @{ ColumnA = "James" ; ColumnB = 4 ; ColumnC = 12 }
$table
Name Value
---- -----
ColumnA Able
ColumnC 4
ColumnB 1
ColumnA Baker
ColumnC 3
ColumnB 2
ColumnA Charlie
ColumnC 5
ColumnB 3
ColumnA James
ColumnC 12
ColumnB 4
没有理由使用 Format-Table
,除了更改显示。
如果您想使用 属性 名称作为 header 名称来显示它们,您可以执行以下操作:
$table | %{ New-Object PSCustomObject -Property @{ ColumnA=$_.ColumnA; ColumnB=$_.ColumnB; ColumnC=$_.ColumnC } } | Select-Object -Property ColumnA, ColumnB, ColumnC
这将像这样显示它们:
ColumnA ColumnB ColumnC
------- ------- -------
Able 1 4
Baker 2 3
Charlie 3 5
James 4 12
我在尝试向 table 添加行时遇到了一点问题。我将原始值存储在一个变量中,并使用自定义对象将它们转换为 table 格式。
$table = @( @{ColumnA="Able"; ColumnB=1; ColumnC=4},
@{ColumnA="Baker"; ColumnB=2; ColumnC=3},
@{ColumnA="Charlie"; ColumnB=3; ColumnC=5} )
$t2 = $table | ForEach {[PSCustomObject]$_} | Format-Table -AutoSize
之后,我将一个新对象存储在一个变量中并将其附加到 table 变量。
$newRow = New-Object PsObject -Property @{ ColumnA = "James" ; ColumnB = 4 ; ColumnC = 12 }
$t2 += $newRow
$t2
我的期望是得到以下结果:
ColumnC ColumnB ColumnA
------- ------- -------
4 1 Able
3 2 Baker
5 3 Charlie
12 4 James
但是我收到的是这样的:
ColumnC ColumnB ColumnA
------- ------- -------
4 1 Able
3 2 Baker
5 3 Charlie
ColumnC ColumnB ColumnA
------- ------- -------
12 4 James
如何将所有行合并为一个table?
谢谢,丹尼尔
你有一个哈希表数组。您需要附加另一个哈希表:
$table += @{ ColumnA = "James" ; ColumnB = 4 ; ColumnC = 12 }
$table
Name Value
---- -----
ColumnA Able
ColumnC 4
ColumnB 1
ColumnA Baker
ColumnC 3
ColumnB 2
ColumnA Charlie
ColumnC 5
ColumnB 3
ColumnA James
ColumnC 12
ColumnB 4
没有理由使用 Format-Table
,除了更改显示。
如果您想使用 属性 名称作为 header 名称来显示它们,您可以执行以下操作:
$table | %{ New-Object PSCustomObject -Property @{ ColumnA=$_.ColumnA; ColumnB=$_.ColumnB; ColumnC=$_.ColumnC } } | Select-Object -Property ColumnA, ColumnB, ColumnC
这将像这样显示它们:
ColumnA ColumnB ColumnC
------- ------- -------
Able 1 4
Baker 2 3
Charlie 3 5
James 4 12