PowerShellの.ps1スクリプトで実行時の引数を確認する。

powershell コンピュータ
powershell

引数として$File受け取る.ps1スクリプトファイルがあります。

param(
    [string]
    $File
)
echo $File

こちらをシェルから呼び出す場合以下のようになります。

PS C:\Users\karet\Documents\PowerShell> .\Test.ps1 -File abc
abc

引数名の-Fileを指定することで$Fileに引数に”abc”文字列がセットされていることが確認できます。

それでは-Fileを省略するとどうなるでしょう?

PS C:\Users\karet\Documents\PowerShell> .\Test.ps1 abc
abc

こちらも$Fileにabcがセットされています。

引数で渡した並びの順番がスクリプト側のparam()の順番に対応する模様です。
ということですので、引数名を指定する場合、引数の順番は気にする必要はなさそうですが、引数名をしてしない場合を想定すると、必須の引数は前の方(左側)に配置し引数にデフォルト値がある変数やswitchなどのオプションとして扱う引数は後の方(右側)、するほうがよさそうです。

ちなみにほかのプログラミング言語でも定番の引数を文字配列として扱うことも出来ます。その変数名は

$Args[]

で、引数の順番を添え字として引数にアクセスすることになりますので、こちらでも引数の順番を意識する必要があります。

コメント