PowerShell-$collection.GetEnumerator()方法进行排序

PowerShell-$collection.GetEnumerator()方法进行排序,powershell,Powershell,我正在使用下面的sort命令执行powershell脚本。它给了我一个错误,因为“系统集合字典条目不包含方法名子字符串”。我想写出第9列的排序记录/out_文件中的记录,有人能帮我吗 $collection.GetEnumerator()|排序名称| foreach{$\子字符串(9)}|输出文件$SORTED\u审计-编码ascii 您没有说,$collection是什么类型,但是如果它是任何内置类型,那么您可能不需要GetEnumerator()调用,因为Powershell将自动对管道中的

我正在使用下面的sort命令执行powershell脚本。它给了我一个错误,因为“系统集合字典条目不包含方法名子字符串”。我想写出第9列的排序记录/out_文件中的记录,有人能帮我吗

$collection.GetEnumerator()|排序名称| foreach{$\子字符串(9)}|输出文件$SORTED\u审计-编码ascii

您没有说,
$collection
是什么类型,但是如果它是任何内置类型,那么您可能不需要GetEnumerator()调用,因为Powershell将自动对管道中的任何IEnumerable调用GetEnumerator

现在我假设
$collection
是一个具有属性的对象集合。它至少有一个属性
Name
,您可以根据该属性对其进行排序,并且至少有一个字符串属性要删除其最后9个字符。在这种情况下,需要获取属性的子字符串,而不是$_

$collection | sort Name | foreach { $_.string_property.substring(9) } | out-File $SORTED_AUDIT -Encoding ascii
如果您只想将神秘字符串传递给Out文件,而不是整个对象,那么您可以在foreach之前使用Select object来选择属性

$collection | sort Name | Select -Property string_property | foreach {$_.substring(9)} | Out-File etc.

如何定义$collection?
$collection.GetType()的结果是什么?