パイプで渡されるてくるデータの処理用の関数。
開始処理はbeginブロック、終了処理はendブロック、渡されてくるデータの処理はprocessブロックに記述する。渡されてきたデータは変数$_に格納されている。
returnで値を返すと関数の出力になる。
even.ps1
function even {
begin{ $cnt = 0 }
process {
$cnt++
if($_ % 2 -eq 0){
return "${cnt}番目のデータ:$_"
} else {
return
}
}
end{ return "終了" }
}
実行結果
PS C:\> . C:\even.ps1 PS C:\> 1..10 | even 2番目のデータ:2 4番目のデータ:4 6番目のデータ:6 8番目のデータ:8 10番目のデータ:10 終了