Powershell 通用集合列表不显示多个对象
Powershell generic collections list not displaying multiple object
我有两个集合和对象。当显示两个集合时,它只显示一个。请指教
Function Test{
$Table1 = New-Object 'System.Collections.Generic.List[System.Object]'
$Table2 = New-Object 'System.Collections.Generic.List[System.Object]'
$obj = [PSCustomObject]@{
'Name' = 'Jack'
'Age' = '21'
}
$Table1.Add($obj)
$obj2 = [PSCustomObject]@{
'Name' = 'Jack'
'city' = 'BKG'
}
$Table2.Add($obj2)
$Table1
$Table2
}
Test
output is:
Name Age
---- ---
Jack 21
Jack
我想要如下输出
Name Age
---- ---
Jack 21
Name city
---- ----
Jack BKG
请指教
当您将数组或函数中的多个对象发送到控制台时,它会确定在table 中显示的第一个对象的属性。通常,从函数或数组接收到的对象是具有相似属性的相似对象,因此这是可行的。
在您的情况下,您发送了 2 个具有不同属性的对象,因此您得到了这种不需要的行为,即只看到第一个对象的属性。这并不意味着城市 属性 在第二个对象上不存在或第二个对象的年龄为 属性.
如果您想包含第二个对象的属性,您必须强制显示它们
test | Format-Table *, city
或
test | Format-Table name, age, city
在这种情况下,您会看到以下内容
Name Age city
---- --- ----
Jack 21
Jack BKG
不完全是您要找的东西,但您现在至少可以看到这座城市 属性。您也可以在不指定 属性 名称的情况下使用 Format-List,因为在这种格式下,每个对象都可以单独列出它们的每个实际属性。
test | Format-List
Name : Jack
Age : 21
Name : Jack
city : BKG
如果您希望两个对象都在 table 视图中,但像上面显示的那样分开 table,您可以使用 foreach 循环并将每个单独发送到 Format-Table 或 Out-主持人如此
Test | ForEach-Object { $_ | Out-Host }
Name Age
---- ---
Jack 21
Name city
---- ----
Jack BKG
每个对象都是单独发送的,允许 Out-Host 以 table 格式评估和包含每个对象的属性
我有两个集合和对象。当显示两个集合时,它只显示一个。请指教
Function Test{
$Table1 = New-Object 'System.Collections.Generic.List[System.Object]'
$Table2 = New-Object 'System.Collections.Generic.List[System.Object]'
$obj = [PSCustomObject]@{
'Name' = 'Jack'
'Age' = '21'
}
$Table1.Add($obj)
$obj2 = [PSCustomObject]@{
'Name' = 'Jack'
'city' = 'BKG'
}
$Table2.Add($obj2)
$Table1
$Table2
}
Test
output is:
Name Age
---- ---
Jack 21
Jack
我想要如下输出
Name Age
---- ---
Jack 21
Name city
---- ----
Jack BKG
请指教
当您将数组或函数中的多个对象发送到控制台时,它会确定在table 中显示的第一个对象的属性。通常,从函数或数组接收到的对象是具有相似属性的相似对象,因此这是可行的。
在您的情况下,您发送了 2 个具有不同属性的对象,因此您得到了这种不需要的行为,即只看到第一个对象的属性。这并不意味着城市 属性 在第二个对象上不存在或第二个对象的年龄为 属性.
如果您想包含第二个对象的属性,您必须强制显示它们
test | Format-Table *, city
或
test | Format-Table name, age, city
在这种情况下,您会看到以下内容
Name Age city
---- --- ----
Jack 21
Jack BKG
不完全是您要找的东西,但您现在至少可以看到这座城市 属性。您也可以在不指定 属性 名称的情况下使用 Format-List,因为在这种格式下,每个对象都可以单独列出它们的每个实际属性。
test | Format-List
Name : Jack
Age : 21
Name : Jack
city : BKG
如果您希望两个对象都在 table 视图中,但像上面显示的那样分开 table,您可以使用 foreach 循环并将每个单独发送到 Format-Table 或 Out-主持人如此
Test | ForEach-Object { $_ | Out-Host }
Name Age
---- ---
Jack 21
Name city
---- ----
Jack BKG
每个对象都是单独发送的,允许 Out-Host 以 table 格式评估和包含每个对象的属性