我想知道如何在Powershell中嵌套Forach-Object,Where-Object和其他Cmdlet。例如,这代码:嵌套的Foreach对象和Where对象的变量
$obj1 | Foreach-Object {
$obj2 | Where-Object { $_ .... }
}
所以在FOREACH - 对象的代码块I用的$obj1
元素作为$_
。但是在Where-Object的代码块中,$obj2
也是如此。那么如何访问Where-Object代码块中的两个对象元素?我将不得不做$_.Arg1 -eq $_.Arg1
,但这没有任何意义。
我知道一个“真正的”foreach循环,但我正在为这个问题寻找一个解决方案,因为这发生在不同的情况。它也可能没有Foreach-Object。 – Michael 2014-11-03 14:05:15
@Michael那么你必须保存这个变量,以便像Lieven和我建议的其他范围一样。 – Matt 2014-11-03 14:50:50
@Matt,'$ _'是否有可以在这些情况下使用的父对象引用?像'$ itemArray | %{$ _。childArray | %{$ _。Parent.ParentProperty}}' – craig 2016-09-22 13:16:02