PowerShellで、引数を受け取る方法を解説します。
はじめに
PowerShellで引数を受け取る方法は、様々な方法があります。
本記事では、取得した引数を1つの変数(配列形式)に格納する方法や、
複数の変数に格納する方法など、様々な方法をご説明したいと思います。
また、内容が多いので、前半と後半(本記事)に分けて解説しています。
前半では、以下の内容について解説しています。
引数の型を指定する
引数で渡された値を格納する変数の型を指定する方法を説明します。
以下は、型を指定する場合の書式です。
Param( [引数1の型]引数1として渡された値を格納する変数名, [引数2の型]引数2として渡された値を格納する変数名, [引数3の型]引数3として渡された値を格納する変数名 )
以下はサンプルのスクリプトで、渡された引数を1つずつ表示します。
型の指定ですが、引数1から文字列型・数値型・数値型(64bit)となっています。
# 引数を変数に格納 Param( [String]$arg0, [Int]$arg1, [Long]$arg2 ) # 引数1の内容を表示 Write-Host $arg0 # 引数2の内容を表示 Write-Host $arg1 # 引数3の内容を表示 Write-Host $arg2
スクリプトを実行する際の書式です。
PowerShellスクリプト名.ps1 引数1 引数2 ...
サンプルの実行結果です。
PS C:\workspace\PowerShell>> .\test.ps1 りんご 111 999 りんご 111 999
引数をboolean型にする
引数の型を、boolean型に設定する方法を説明します。
以下が書式になります。
Param( [switch]引数1, [switch]引数2 )
サンプルのスクリプトです。
引数を受け取り、その値を表示しています。
# 配列型の引数を受け取る Param( [switch]$arg0, [switch]$arg1 ) # 各要素の値を表示 Write-Host $arg0 Write-Host $arg1
スクリプトを実行する際の書式です。
PowerShellスクリプト名.ps1 引数1 引数2 ...
サンプルの実行結果です。
引数として指定した値が「True」に、何も指定していない値が「False」となります。
PS C:\workspace\PowerShell>> .\test.ps1 -arg0 True False
配列型の引数を受け取る
PowerShellでは、配列型の引数を受け取ることも出来ます。
以下は、配列型の引数を受け取る場合の書式です。
Param([Array]引数として渡された値を格納する変数名)
サンプルのスクリプトです。
配列の各要素の内容と要素数を表示しています。
# 配列型の引数を受け取る Param([Array]$array) # 各要素の値を表示 Write-Host $array[0] Write-Host $array[1] Write-Host $array[2] # 配列の要素数を表示 Write-Host $array.Length
スクリプトを実行する際の書式です。
各引数をカンマ区切りで指定します。
PowerShellスクリプト名.ps1 引数1,引数2,...
サンプルの実行結果です。
引数3は何も値を指定していないため、初期値の[777]が表示されています。
PS C:\workspace\PowerShell>> .\test.ps1 りんご,メロン,みかん りんご メロン みかん 3
エイリアスを設定する
Alias属性を使用することで、引数にエイリアスを設定することが出来ます。
エイリアスの数に制限はありません。
以下が書式になります。
Param( [Alias("エイリアス名1","エイリアス名2",...)]引数 )
サンプルのスクリプトです。
引数を受け取り、その値を表示しています。
# 配列型の引数を受け取る Param( [Alias("SI","Info")]$SystemInfo ) # 各要素の値を表示 Write-Host $SystemInfo
スクリプトを実行する際の書式です。
PowerShellスクリプト名.ps1 -引数1 値1 ...
サンプルを3回実行した結果です。
以下のように、エイリアスを設定すると、1つの引数に様々な引数名を使用することが出来ます。
PS C:\workspace\PowerShell>> .\test.ps1 -SystemInfo システム情報 システム情報 PS C:\workspace\PowerShell>> .\test.ps1 -Info システム情報 システム情報 PS C:\workspace\PowerShell>> .\test.ps1 -SI システム情報 システム情報
コメント