我正在尝试更改哈希表中特定项目的值。如何编辑搜索返回的PowerShell数组项目?
for ($i=0; $i -le $haystack.length-1; $i++)
{
if ($haystack[$i].name -eq "needle")
{
$haystack[$i].currentstatus = "found"
}
}
上面的代码工作,但好像必须有:如果条件满足像这样我就可以通过整个对象迭代,测试每一个键一个特定的值,然后改变它做到这一点一种更有效的方法来完成这项任务,特别是当草垛很大并且只有一根针时。
我试图用那里对象,可以找到我要找的记录:
$haystack | where-object {$_.name -eq "needle"}
这似乎比做一个蛮力搜索好得多,但我不知道如何在这个纪录得到现在。如果我有数组中的索引,那么我可以很容易地使用它来编辑我想要的值,那么有没有办法获得数组索引?这通常如何完成?谢谢。
感谢您的选项。听起来我试图通过尝试将数据库思想应用到PowerShell来过度优化该操作。我会坚持迭代并称它为好。 – 2011-05-10 19:49:30