HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


PowerShellの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > PowerShell Tips > 関数 Tips メニュー

08.フィルタ

 
UPDATE:2007/12/04    
 
<< 前のTips  次のTips >> 




フィルタ(filter)は関数に似ていますが、オブジェクトをフィルタするのに用います。

sample1は Get-ChildItemの結果をパイプラインで渡し、拡張子が*.txtのものをフィルタリングして表示しています。

この記述は、長いため何度も繰り返し記述するのは効率的ではありません。

sample1

PS C:\Work2> Get-ChildItem | where { $_.Extension -like "*.txt"}


ディレクトリ: Microsoft.PowerShell.Core\FileSystem::C:\Work2


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2007/12/04 23:14 20 a.txt

では、拡張子が *.txt のファイルを取り出すフィルタを作成してみましょう。
sample2のように入力して、TextFile.ps1 としてカレントフォルダへ保存します。

sample2

filter TextFile
{
if ( $_.Extension -like "*.txt" )
{
return $_
}
}

次に、. .\test.ps1[Enter]と入力し、作成したスクリプトを現在のスコープへ読み込みます。

Get-ChildItem | TextFile

とすると、作成したTextFileフィルタが働き、拡張子が *.txt のファイルが出力されます。

sample3

PS C:\Work2> . .\test.ps1
PS C:\Work2> Get-ChildItem | TextFile


ディレクトリ: Microsoft.PowerShell.Core\FileSystem::C:\Work2


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2007/12/04 23:14 20 a.txt
 
<< 前のTips  次のTips >>