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.
foreach
es est plus lisible que imbriqués les pipelines.OriginalL'auteur Chris Magnuson | 2011-11-23
Vous devez vous connecter pour publier un commentaire.
Vous pouvez attribuer le
$_
à une variable et de l'utiliser?De toute façon, envisager la refactorisation de votre script. Il est trop imbriqué. Se concentrer sur la lisibilité. Il n'est pas toujours nécessaire de tuyau, vous pouvez utiliser une boucle foreach si cela permet d'améliorer la lisibilité.
OriginalL'auteur manojlds