我有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
}