一部のオブジェクトを名前でフィルタリングするカスタムコマンドレットを実装したいと思います。一般的なコマンドレット(Get-ChildItemおよびGet-Process)のようなワイルドカード対応検索を使用したいと思います。PowerShellでの文字列のフィルタリング
このような検索はどのように実装できますか?いくつかの例や再利用可能なコンポーネントがありますか?どんな例?
一部のオブジェクトを名前でフィルタリングするカスタムコマンドレットを実装したいと思います。一般的なコマンドレット(Get-ChildItemおよびGet-Process)のようなワイルドカード対応検索を使用したいと思います。PowerShellでの文字列のフィルタリング
このような検索はどのように実装できますか?いくつかの例や再利用可能なコンポーネントがありますか?どんな例?
オブジェクトのコレクションをWhere-Object(または短い形式?
)にパイプすることで、独自のフィルタを定義できます。 gci | ?{$_.name -match "log"}
:あなたはgci
(のGet-ChildItemコマンドレットのエイリアス)を実行して、ファイルオブジェクトのコレクションを取得する場合
たとえば、あなたがこれを行うことによって、それらのテキストlog
を持っているものだけを表示することができます。
ほとんどの場合、これらの種類のコマンドレットはWildcardPattern classを利用しています。
ここでPowerShellのプロンプトから直接それを使用する方法の例です:提案のための
PS>$w = New-Object System.Management.Automation.WildcardPattern "*foo*"
PS>$w.IsMatch("foobar")
True
PS>$w.IsMatch("barbar")
False
おかげで、私は、データベースにアクセスするデータをフィルタリングしたいと思いますので、私はコマンドレットの中にそれを実装したいと思います。 – fra
一部のコマンドレットにはフィルタ(gci-filter "query")がありますが、フィルタはプロバイダに基づいています(gciの場合、ファイルシステムプロバイダとなります)。 – SpellingD
ありがとう、私はプロバイダのコードを見ていきます。 – fra