2012-04-20 91 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