Get-Item env: | Sort-Object -Property Name
但输出始终是未排序的。然后我尝试了以下方法:
Get-ChildItem env: | Sort-Object -Property Name
获得了预期的、正确排序的输出. 这表明,尽管来自
Get-Item env:
和Get-ChildItem env:
的(格式化的)输出看起来完全相同(即字典),但其输出类型并不相同。将命令的输出传输到
| Get-TypeData
中,发现Get-Item env:
似乎实际上只返回单个System.Collections.DictionaryEntry
,而Get-ChildItem env:
返回多个System.Collections.DictionaryEntry
对象。有人可以解释一下这里具体发生了什么吗?为什么两种看似不同的输入数据类型会产生相同的输出/字符串表示形式?PowerShell是否对
Get-Item
输出中的单个条目字典对象做了一些隐式的“拆箱”操作?在Windows 10上使用PowerShell 5.1。