Как я могу перебрать вывод ключа / значения в 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'
}
Другие вопросы по тегам