This question already has answers here:
How can I enumerate a hashtable as key-value pairs / filter a hashtable by a collection of key values

(2个答案)


3年前关闭。




我是一个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中的单个项目?

更具体地说,如何对键/值输出进行正确的迭代?

最佳答案

使用$cmdLets.GetEnumerator():

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

09-30 23:43