PowerShell(フィルタ)


ドラマ『わにとかげぎす』
38年間友達なし彼女なしの男に、初とも、初かのができるが...ん~、どういう展開になるんでしょうか。謎で面白そうです。

今回はフィルタです。オブジェクトをフィルタする場合は、%(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>

コメント

  1. xxx says:

    I’m not that much of a inteгnet reader to be honest but your blogs really nice, keеp it up!

    I’ll go ahead ɑnd bookmark your site to cⲟme bɑck in the fᥙture.
    Many thanks

  2. xxx says:

    I was aЬle to find good info from your articles.

タイトルとURLをコピーしました