如何在Powershell中迭代键/值输出?

时间:2017-09-18 17:02:04

标签: powershell iteration

我是Powershell新手,试图枚举ExportedCmdlets模块中的所有pscx。我之前在powershell中使用了foreach,但似乎没有使用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 个答案:

答案 0 :(得分:2)

使用$cmdLets.GetEnumerator()

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

答案 1 :(得分:1)

使用keys属性,即:

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