Zastanawiam się, jak pracować z zagnieżdżonymi obiektami typu Forach-Object, Where-Object i innymi Cmdlets w Powershell. Na przykład ten kod:Zmienne w zagnieżdżonych Foreach-Object i Where-Object
$obj1 | Foreach-Object {
$obj2 | Where-Object { $_ .... }
}
Więc w bloku kodu Foreach-Object Używam elementów $obj1
jak $_
. Ale to samo dzieje się w bloku kodu Where-Object z $obj2
. Jak więc uzyskać dostęp do obu elementów obiektów w bloku kodu Where-Object? Musiałbym zrobić $_.Arg1 -eq $_.Arg1
, ale to nie ma sensu.
Wiem o "prawdziwej" pętli foreach, ale szukam rozwiązania dla dokładnie tego problemu, ponieważ dzieje się to w różnych sytuacjach. Może to być również bez Foreach-Object. – Michael
@Michael to musisz zapisać zmienną, aby była dostępna dla innych zakresów, takich jak Lieven i sugeruję. – Matt
@Matt, czy '$ _' ma odwołanie do obiektu macierzystego, które może być użyte w tych sytuacjach? Coś jak '$ itemArray | % {$ _. childArray | % {$ _. Parent.ParentProperty}} ' – craig