ドラマ『わにとかげぎす』
38年間友達なし彼女なしの男に、初とも、初かのができるが...ん~、どういう展開になるんでしょうか。謎で面白そうです。
(本記事はPowerShell入門記事としてコチラにもまとめています。)
今回はフィルタです。オブジェクトをフィルタする場合は、%(ForEach-Object)を使いますが、
PS C:\Users\takk\aaa> 1..10 | %{$_*$_}
1
4
9
16
25
36
49
64
81
100
PS C:\Users\takk\aaa>
これを関数化するには、filterを使います。
PS C:\Users\takk\aaa> filter squre(){
>> $_*$_
>> }
>>
PS C:\Users\takk\aaa> 1..10 | squre
1
4
9
16
25
36
49
64
81
100
PS C:\Users\takk\aaa>
始めと終わりの処理をしたい時は、%を使う場合は、{}を3つ置きます。
PS C:\Users\takk\aaa> 1..10 | %{$sum=0}{$sum+=$_}{$sum}
55
PS C:\Users\takk\aaa>
この3つの{}は、単にBegin/Process/Endの指定を省略しているだけです。
PS C:\Users\takk\aaa> 1..10 | % -Begin{$sum=0} -Process{$sum+=$_} -End{$sum}
55
PS C:\Users\takk\aaa>
ですので、filterを使う場合は、Begin/Process/Endブロックそれぞれの中に必要な処理を書けばよいです。
PS C:\Users\takk\aaa> filter sum(){
>> begin{$sum=0}
>> process{$sum += $_}
>> end{$sum}
>> }
>>
PS C:\Users\takk\aaa> 1..10 | sum
55
PS C:\Users\takk\aaa>


コメント