我有以下哈希表$ finalArray:
@{Name1=Yellow; Name2=Pallet Town; Name3=Ash; ID=12; Date=2019-07-01; DeviceID=1234} @{Name1=Blue; Name2=Pallet Town; Name3=Gary; ID=14; Date=2019-07-02; DeviceID=5678}
我正在尝试获取ID = 12的值的Name3,该值应返回Ash,但出现以下错误:
Select-Object $finalArray.Name3 | Where-Object $finalArray.ID -eq "12"
Where-Object : A positional parameter cannot be found that accepts argument 'System.Object[]'.
有人知道任何一种更好的评估值的方法吗?
答案 0 :(得分:1)
假设您的意思是您具有哈希表数组(因为变量名表示该数组),那么首先应按以下方式对其进行定义:
$finalarray = @(
@{
Name1 = 'Yellow';
Name2 = 'Pallet Town';
Name3 = 'Ash';
ID = 12;
Date = '2019-07-01';
DeviceID = 1234
}, @{
Name1 = 'Blue';
Name2 = 'Pallet Town';
Name3 = 'Gary';
ID = 14;
Date = '2019-07-02';
DeviceID = 5678
}
)
现在,您要获得ID = 12
哈希表的Name3,如下所示:
($finalarray | where ID -eq 12).Name3
注意
如果您将ID定义为字符串(即ID =“ 12”),则应使用Where ID -eq "12"
而不是Where ID -eq 12
。
答案 1 :(得分:0)
不用担心,我发现我可以使用类似的东西:
($finalArray | Where-object {$_.ID -like "*12*"}).Name