2015-02-23 26 views
0

我正在使用下面的sort命令刪除powershell腳本。它給我一個錯誤,因爲「系統集合字典條目不包含方法名稱子字符串」。我想寫Out_File中第9列/記錄的排序記錄,有誰能幫我解決這個問題嗎?

$collection.GetEnumerator() | sort Name| foreach {$_.substring(9)} | Out-File $SORTED_AUDIT -Encoding ascii 
+0

如何定義$ collection? '$ collection.GetType()'的結果是什麼? – 2015-02-23 07:03:27

回答

0

你不說是什麼類型$collection,但如果它是任何內建類型,那麼你可能不需要的GetEnumerator()調用,如Powershell的會自動的GetEnumerator在管道中的任何的IEnumerable 。

現在我將假設$collection是具有屬性的對象的集合。它至少有一個屬性Name,通過該屬性對其進行排序,並且至少有一個字符串屬性要刪除最後9個字符。在這種情況下,你需要採取的財產子,而不是$ _

$collection | sort Name | foreach { $_.string_property.substring(9) } | out-File $SORTED_AUDIT -Encoding ascii 

如果你只是想通過神祕的字符串出文件,而不是整個對象,那麼你反而會使用Select-Object在您的foreach之前選擇屬性

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