PowerShellで、引数を受け取る方法を解説します。
はじめに
PowerShellで引数を受け取る方法は、様々な方法があります。
本記事では、取得した引数を1つの変数(配列形式)に格納する方法や、
複数の変数に格納する方法など、様々な方法をご説明したいと思います。
また、内容が多いので、前半(本記事)と後半に分けて解説しています。
後半では、以下の内容について解説しています。
引数を配列形式で取得する
引数を配列形式で取得する方法です。
受け取った引数は、配列 $Args[] に格納されます。
以下は、実行時の書式です。
PowerShellスクリプト名.ps1 引数1 引数2 ...
以下はサンプルのスクリプトで、渡された引数を1つずつ表示します。
# 引数1の内容を表示 Write-Host $Args[0] # 引数2の内容を表示 Write-Host $Args[1] # 引数3の内容を表示 Write-Host $Args[2]
サンプルの実行結果です。
PS C:\workspace\PowerShell>> .\test.ps1 りんご メロン みかん りんご メロン みかん
変数名を指定して取得する
Param属性を使用することで、受け取った引数を格納する変数名を指定することが出来ます。
以下は、変数名を指定する場合の書式です。
Param(引数1として渡された値を格納する変数名, 引数2として渡された値を格納する変数名, ...)
以下は、実行時の書式です。
PowerShellスクリプト名.ps1 引数1 引数2 ...
以下はサンプルのスクリプトで、渡された引数を1つずつ表示します。
# 引数を変数に格納 Param($arg0, $arg1, $arg2) # 引数1の内容を表示 Write-Host $arg0 # 引数2の内容を表示 Write-Host $arg1 # 引数3の内容を表示 Write-Host $arg2
サンプルの実行結果です。
PS C:\workspace\PowerShell>> .\test.ps1 りんご メロン みかん りんご メロン みかん
引数の初期値を設定する
PowerShellでは、引数に初期値を設定することも出来ます。
以下は、引数の初期値を設定する場合の書式です。
Param( [引数1の型]引数1として渡された値を格納する変数名 = "値", [引数2の型]引数2として渡された値を格納する変数名 = 値, [引数3の型]引数3として渡された値を格納する変数名 = 値 )
以下はサンプルのスクリプトで、渡された引数を1つずつ表示します。
引数1[$arg1]と引数3[$arg2]に初期値として、値[777]を設定しています。
# 引数を変数に格納 Param( [String]$arg0, [Int]$arg1 = 777, [Long]$arg2 = 777 ) # 引数1の内容を表示 Write-Host $arg0 # 引数2の内容を表示 Write-Host $arg1 # 引数3の内容を表示 Write-Host $arg2
スクリプトを実行する際の書式です。
PowerShellスクリプト名.ps1 引数1 引数2 ...
サンプルの実行結果です。
引数3は何も値を指定していないため、初期値の[777]が表示されています。
PS C:\workspace\PowerShell>> .\test.ps1 りんご 111 りんご 111 777
入力出来る値を指定する
引数に入力出来る値を指定する方法を説明します。
値を指定することで、スクリプトを実行する際、入力支援が働くようになります。
以下が書式になります。
Param( [ValidateSet("値1-1","値1-2")][型]引数1, [ValidateSet("値2-1","値2-2")][型]引数2 )
サンプルのスクリプトです。
配列の各要素の内容と要素数を表示しています。
# 引数を変数に格納 Param( [ValidateSet("りんご","メロン")][String]$arg0, [ValidateSet("123","789")][Int]$arg1 ) # 各要素の値を表示 Write-Host $arg0 Write-Host $arg1
スクリプトを実行する際の書式です。
PowerShellスクリプト名.ps1 引数1 引数2 ...
サンプルの実行結果です。
PS C:\workspace\PowerShell>> .\test.ps1 りんご 123 りんご 123
引数の入力を必須入力にする
引数の入力を必須入力にする方法を説明します。
以下が書式になります。
(PowerShellのバージョン3以降であれば「=$true」は省略出来ます)
Param( [parameter(mandatory=$true)][型]引数1 )
サンプルのスクリプトです。
配列の各要素の内容と要素数を表示しています。
# 配列型の引数を受け取る Param( [parameter(mandatory=$true)][String]$arg0, [parameter(mandatory=$true)][Int]$arg1 ) # 各要素の値を表示 Write-Host $arg0 Write-Host $arg1
スクリプトを実行する際の書式です。
PowerShellスクリプト名.ps1 引数1 引数2 ...
サンプルの実行結果です。
PS C:\workspace\PowerShell>> .\test.ps1 りんご 777 りんご 777
コメント