Как я могу перебрать вывод ключа / значения в Powershell?
Я новичок в Powershell, пытающийся перечислить все ExportedCmdlets
в pscx
модуль. Я использовал foreach
в powershell раньше, но, похоже, он не работает с выводом ключа / значения из ExportedCmdlets
,
Это то, что я до сих пор:
$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'
}
Как я могу сделать $cmdLet
быть единственным предметом в $cmdLets
?
В частности, как я могу правильно перебрать вывод ключа / значения?
2 ответа
Решение
Использование $cmdLets.GetEnumerator()
:
foreach ( $cmdLet in $cmdLets.GetEnumerator() ) {
echo $cmdLet
echo 'next'
}
Использовать keys
свойство, то есть:
$cmdLets = (Get-Module pscx).ExportedCmdlets.Keys
echo $cmdLets
echo '-----------------'
foreach ( $cmdLet in ($cmdLets) ) {
echo $cmdLet
echo 'next'
}