目次
PowerShellのスクリプトの引数
- PowerShellの場合、通常の方法と、
Param()
を使う方法があります。
通常の方法
- スクリプトの引数は自動的に
$Args[]
に格納されます。 - 第1引数は
$Args[0]
、第2引数は$Args[1]
という形式で取得できます。test1.ps1Write-Host $Args[0] Write-Host $Args[1]
実行結果
PS C:\temp> .\test1.ps1 aaa 100 aaa 100
Param()
- Paramを使ってあらかじめ引数を宣言しておくことができます。
test2.ps1
Param($Arg1, $Arg2) #第一引数を$Arg1, 第二引数を$Arg2に格納する Write-Host $Arg1 Write-Host $Arg2
- 通常に呼び出したり、明示的に名前を指定して呼び出したりできます。
実行結果
PS C:\temp> .\test2.ps1 aaa 100 aaa 100 PS C:\temp> .\test2.ps1 -Arg1 aaa -Arg2 100 aaa 100 PS C:\temp> .\test2.ps1 -Arg2 100 -Arg1 aaa aaa 100
スイッチ
- オプション指定したかどうかを
bool型
で受け取る引数を作成できます(Paramを使います)。 - 引数に
switch
という型を指定します。test3.ps1Param( [switch] $dev, [switch] $stg, [switch] $prd ) Write-Host $dev Write-Host $stg Write-Host $prd
-dev
,-stg
などの環境を表すようなスイッチを想定しています。- 例えば、
-stg
と指定してスクリプトを実行すると、$stgの値が$true
となります。
実行結果
PS C:\temp> .\test3.ps1 False False False PS C:\temp> .\test3.ps1 -stg False True False PS C:\temp> .\test3.ps1 -dev -stg -prd True True True
- その他、引数の型を宣言したり、初期値をセットしたり、必須パラメータにしたりといろいろ指定できますが割愛します。
- 詳細は参考サイトをご覧ください。