paramステートメントの使い方

PowerShellでバッチファイルのように、実行時にパラメータを引数として渡す方法について調査した。

$argsを使用する方法とparamステートメントを使用する方法があるようだが、初期値の設定を行うことができるparamステートメントを使用すれば事足りるという印象である。
このことからparamステートメントの動作について述べる。

以下のサンプルを作成した。
paramステートメント内で三種類の変数を用意し、各々に初期値を設定した。
設定した値をechoを使用して出力するという内容である。
サンプルプログラム(paramTest.ps1)

param(
    $a =1,$b =2,$c=3
);

echo $a;
echo $b;
echo $c;

各呼び出しと実行結果は以下のようになる。
1.引数なし
実行

paramTest.ps1

実行結果

1
2
3

2.引数あり(1個)
実行

paramTest.ps1 test

実行結果

test
2
3

また、今回はparamステートメント内の変数に型を設定しなかったが、以下のように型指定することも可能である。
(paramステートメント内の$aを整数型に設定)

param(
    [int]$a =1,$b =2,$c=3
);

echo $a;
echo $b;
echo $c;

この場合、上記の実行パターン1は動作するが、実行パターン2は文字列「test」を代入しようとするため、エラーが発生する。

参考にしたページ
PowerShell で引数の取得