powershell - 如何使用 Select-Object、Where-Object 在哈希表中获取正确的值
问题描述
我有以下哈希表 $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[]'.
有人有任何指针/更好的评估价值的方法吗?
解决方案
假设你的意思是你有一个哈希表数组(因为你的变量名意味着),首先你应该如下定义它:
$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
}
)
现在您要获取哈希表的 Name3,ID = 12
如下所示:
($finalarray | where ID -eq 12).Name3
笔记
如果您将 ID 定义为字符串(即 ID = "12"),那么您应该使用Where ID -eq "12"
not Where ID -eq 12
。
推荐阅读
- flutter - 如何在 Flutter 应用程序中使用 ListTile 记住和突出显示选定的抽屉项目?
- google-analytics - 如何禁用/启用使用 GTM 动态实现的 Google 分析
- python - 谷歌趋势历史数据如何变化?
- robots.txt - AASA 文件验证问题
- ios - iOS App Icon保持方形而不是圆角
- hadoop - 批量加载因某些文件尚未加载而中止
- python - PokePy 风味文本语言
- c++ - 微分方程组的欧拉方法
- active-directory - Ldap 查询以获取 Active Directory 中组的用户
- python - 如何使用硒获取列表中特定元素的值?