2013-04-23 150 views
3

當我在Powershell(v3安裝)中觀察到一些奇怪的行爲時,我正在製作一個簡單的演示腳本。Powershell:GetType導致下載的奇怪行爲

$file = ls 'C:\temp' | Where-Object {$_.Extension -eq '.txt'} 
$file.FullName 

#$file.GetType() 

dir 'c:\temp' 

非常良性的權利?它按預期運行(假設你有一個c:\ temp目錄,並且裏面有一個txt文件)。但是,取消註釋$ file.GetType()行後面的dir行不再提供簡單的目錄列表。相反,它會給出目錄中所有項目的詳細列表。我嘗試將GetType輸出爲out-null,然後dir再次正常工作,但我似乎無法完成GetType並在之後列出目錄。

所以我很好奇,調用GetType是什麼造成了其他cmdlet下游的更改?任何人都可以解釋造成它的機制嗎?

此外,我嘗試了一些其他方法,發現一些導致問題(如GetAccessControl)和其他問題(如GetHashCode)。所以這不僅僅是通過調用方法,某些方法會導致行爲。

+0

建議報告此[這裏](http://connect.microsoft.com/PowerShell) – 2013-04-23 18:10:06

回答

3

在我看來,這只是一個默認的formtter變得困惑和切換到格式列表顯示,而不是格式表的問題。

如果取消對GetType()的註釋,然後將目錄列表顯式傳送到FT,它將恢復正常。

+2

謝謝,這確實有效。我不知道默認的格式。如果有人以後想要進行更深入的研究,我也會發現這篇文章:http://blogs.msdn.com/b/powershell/archive/2006/04/30/586973.aspx – 2013-04-23 18:16:22

相關問題