Powershell将孩子们的财产融合在一起

时间:2016-12-07 23:40:36

标签: powershell object collections

我有Powershell对象,它包含一系列序列号。我希望使用系统方法将所有序列号返回到一起,而不是循环遍历它们并创建新的数组或集合。

尝试:

PS C:> $serialNumbersByModel.'3910101'.Years | select Name, @{n='SerialNumbers';e={$_.Value.SerialNumbers}}

没有输出结果:

Name SerialNumbers
---- -------------

这也导致没有输出:

$serialNumbersByModel.'3910101'.Years | % {$_.Value.SerialNumbers}

以下是数据示例:

PS C:\WINDOWS\system32> $serialNumbersByModel.'3910101'.Years

Name Value
---- -----
1981 {SerialNumbers}
1975 {SerialNumbers, StartSerialNumber, EndSerialNumber, PlaceholderLength}
1976 {SerialNumbers, StartSerialNumber, EndSerialNumber, PlaceholderLength}
1985 {SerialNumbers}
1974 {SerialNumbers, StartSerialNumber, EndSerialNumber, PlaceholderLength}
1977 {SerialNumbers, StartSerialNumber, EndSerialNumber, PlaceholderLength}
1978 {SerialNumbers, StartSerialNumber, EndSerialNumber, PlaceholderLength}
1980 {SerialNumbers, StartSerialNumber, EndSerialNumber, PlaceholderLength}

是否有一个Powershell方法可以将所有孩子的公共属性(在我的案例SerialNumbers中)一起返回?

以下是基础孩子的输出:

PS C:\WINDOWS\system32> $serialNumbersByModel.'3910101'.Years.'1981'

Name                           Value
----                           ----- 
SerialNumbers                  {System.Data.DataRow, System.Data.DataRow, System.Data.DataRow, System.Data.DataRow...}

PS C:\WINDOWS\system32> $serialNumbersByModel.'3910101'.Years.'1981'.SerialNumbers

serial_number
-------------
1001
1002
1003
1004
1005

这就是我所采用的:

ForEach ($year in $serialNumbersByModel.model.Years.keys) {
    $serialNumbersByModel.model.Years.$year.SerialNumbers
}

0 个答案:

没有答案