PowerShell(begin、process、endブロック)

(本記事はPowerShell入門記事としてコチラにもまとめています。)

PowerShell(乱数、コマンド置換)」の続きです。

PerlやAwkと同じようにブロックが指定できます。
起動時1回だけ実行するbeginブロック。標準入力の各行を処理するprocessブロック。最後に1回だけ実行するendブロックです。
使ってみましょう。

PS C:\Users\takk> function tohex(){
>> begin{$s=""}
>> process{$s += "{0:X2} " -f $_}
>> end{echo $s}
>> }
>>
PS C:\Users\takk> 10,20,30,40,50 | tohex
0A 14 1E 28 32
PS C:\Users\takk>

次は、lsの結果を渡してみましょう。

PS C:\Users\takk\aaa> ls -n
dir_11CFDF63
dir_2065207
dir_2EA62317
dir_3A7F5143
dir_46585CA
dir_59E634FB
dir_5D8B7032
dir_60682448
dir_6604792F
dir_6A254AAD
dir_7E2D24B5
PS C:\Users\takk\aaa>

18桁の右詰表示に加工する関数です。

PS C:\Users\takk\aaa> function print20(){
>> process{"|{0,18}|" -f $_}
>> }
>>
PS C:\Users\takk\aaa> ls -n | print20
|      dir_11CFDF63|
|       dir_2065207|
|      dir_2EA62317|
|      dir_3A7F5143|
|       dir_46585CA|
|      dir_59E634FB|
|      dir_5D8B7032|
|      dir_60682448|
|      dir_6604792F|
|      dir_6A254AAD|
|      dir_7E2D24B5|
PS C:\Users\takk\aaa>

コメント

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