スクリプトブロック
Power Shellでは、「{}」で括った一連の処理を「スクリプトブロック」として、変数に格納することができます。格納した処理は、「&<変数>」として、任意のタイミンクで呼び出すことが可能です。
PS C:\> $proc = { echo "aaa" } # スクリプトブロックを作成して変数$procに格納 PS C:\> &$proc # $procのスクリプトブロックを実行。 aaa
引数も渡せます。
PS C:\> $proc = { echo $args[0] } PS C:\> &$proc foo foo PS C:\> &$proc var var
関数に引数として渡せたりもします。Rubyのprocに近い感じ。Array#each的なものも作れます。
PS C:\> function each( $array, $proc ) { foreach( $item in $array ) { &$proc $item } } PS C:\> $proc = { echo $args[0] } PS C:\> each (1,2,3) $proc 1 2 3 PS C:\> $proc = { echo ($args[0]*2) } PS C:\> each (1,2,3) $proc 2 4 6 PS C:\> each (1,2,3) { echo ($args[0]+1) } 2 3 4