未分類

PowerShell - ファンクションの引数の受け取り方 (まとめ)

ファンクションで引数を受け取る方法にはいくつかの方法があります。考えられるもの全てをまとめました。

$_、$input、ファンクションの定義済み変数、$args の全ての方法で受け取る

$_ と $input は、パイプライン処理されるごとに一つずつ引数を受け取ります。この場合は 3 回受け取り、process ブロックで処理します。
ファンクションに定義された変数 ($v1) でも引数を受け取りますが、指定された 3 個の引数 ("A", "B", "C") のうち、最初の一つだけを $v1 で受け取ります。受取りはファンクションがコールされる回数分受け取ります。この場合は 3 回受け取りますが、begin ブロックでのみ処理していますので、1 回だけ出力されます。
指定された残りの引数 ("B", "C") は、$args で受け取ります。この受取りもファンクションがコールされる回数 (3 回分) ですが、$v1 の処理と同じく begin ブロックで処理していますので、1 回のみ出力されます。
1. 次のファンクションを作成します。

function test ($v1)
{
    begin
    {
        $v1
        $args
    }
    process
    {
        '$_:    ' + $_
        '$input:' + $input
    }
}

2. ファンクションをコールします。

1,2,3 | test "A" "B" "C"

-未分類