2017-09-18 4 views
1

Je suis un nouveau venu Powershell essayant d'énumérer tous les ExportedCmdlets dans le module pscx. J'ai utilisé foreach dans powershell avant mais il ne semble pas fonctionner avec la sortie clé/valeur de ExportedCmdlets.Comment puis-je itérer sur la sortie clé/valeur dans Powershell?

C'est ce que j'ai jusqu'à présent:

$cmdLets = (Get-Module pscx).ExportedCmdlets 
echo $cmdLets 
echo '-----------------' 
# This is where the script breaks - $cmdLet is the entire set of $cmdLets 
foreach ($cmdLet in ($cmdLets)) { 
    echo $cmdLet 
    echo 'next' 
} 

Comment puis-je faire $cmdLet être un seul élément dans $cmdLets?

Plus précisément, comment est-ce que je peux itérer correctement sur la sortie clé/valeur?

Répondre

2

Utilisation $cmdLets.GetEnumerator():

foreach ($cmdLet in $cmdLets.GetEnumerator()) { 
    echo $cmdLet 
    echo 'next' 
} 
1

Utilisez la propriété keys, à savoir:

$cmdLets = (Get-Module pscx).ExportedCmdlets.Keys 
echo $cmdLets 
echo '-----------------' 
foreach ($cmdLet in ($cmdLets)) { 
    echo $cmdLet 
    echo 'next' 
}