0

我想实现一些按名称过滤某些对象的自定义 cmdlet,并且我想使用通配符启用搜索,例如常见 cmdlet(Get-ChildItemGet-Process)。

我怎样才能实现这种搜索?是否有一些示例甚至一些可重用的组件?有什么例子吗?

4

2 回答 2

1

大多数情况下,这些类型的 cmdlet 使用WildcardPattern 类

下面是一个如何在 PowerShell 提示符下直接使用它的示例:

PS>$w = New-Object System.Management.Automation.WildcardPattern "*foo*"
PS>$w.IsMatch("foobar")
True
PS>$w.IsMatch("barbar")
False
于 2012-07-11T02:24:50.730 回答
0

您可以通过将对象集合传递给Where-Object(或缩写形式?)来定义自己的过滤器。

例如,如果您通过执行gci(Get-ChildItem 的别名)获取文件对象的集合,则可以通过执行以下操作仅显示其中包含文本log的对象:gci | ?{$_.name -match "log"}.

于 2012-04-20T19:23:30.783 回答