2012-04-20 88 views

回答

0

您可以通過將一組對象集合到Where-Object(或簡稱?)來定義自己的過濾器。

例如,如果你這樣做gci(GET-ChildItem的別名)獲取文件對象的集合,你可以只顯示做這個有文字log在他們的:gci | ?{$_.name -match "log"}

+0

感謝您的建議,但我想給cmdlet內實現它,因爲我想過濾數據庫中訪問數據。 – fra 2012-04-23 13:24:10

+0

某些cmdlet具有過濾器(gci-filter「query」),但過濾器基於提供程序(對於gci,它將是文件系統提供程序),實際上並未在cmdlet本身內定義。 – SpellingD 2012-04-23 14:24:54

+0

謝謝,我會看看提供商的代碼。 – fra 2012-04-24 05:57:45

1

大多數情況下,這些類型的cmdlet都利用了WildcardPattern class

這裏有一個如何直接使用它從PowerShell提示符的例子:

PS>$w = New-Object System.Management.Automation.WildcardPattern "*foo*" 
PS>$w.IsMatch("foobar") 
True 
PS>$w.IsMatch("barbar") 
False