Comment puis-je accéder à un niveau supérieur $_ pipeline variable à partir d'une imbriqués pipeline?

Je suis en train d'écrire un script qui va chercher dans un répertoire du disque dur virtuel Parent fichiers et d'en évaluer les machines virtuelles sont l'utilisation de ces parent disques durs Virtuels.

J'ai la mécanique de ce travail, mais je suis en cours d'exécution dans une question où j'ai vraiment besoin de faire référence à un pipeline automatique variable ($_) à partir du contexte de imbriquée pipeline

Le sudo code serait quelque chose comme:

For each File in Files
Iterate over all VMs that have differencing disks
and return all the VMs that have a disk whose parent disk is File

Ici est le powershell code que j'ai mis en œuvre jusqu'à présent pour ce faire:

$NAVParentFiles = get-childitem '\\hypervc2n2\c$\ClusterStorage\Volume1\ParentVHDs' | where {$_.Name -notLike "*diff*"} | select name
$NAVParentFiles | % { Get-VM | where {$_.VirtualHardDisks | where {$_.VHDType -eq "Differencing" -and ($_.ParentDisk.Location | split-path -leaf) -like <$_ from the outer for each loop goes here> } } 

Merci pour toute aide que vous pouvez me donner sur comment élégamment accès extérieur pipeline variable à partir d'une imbriqués pipeline.

Parfois nestead foreaches est plus lisible que imbriqués les pipelines.

OriginalL'auteur Chris Magnuson | 2011-11-23