Windows PowerShell でコマンドライン引数を取得する
- PowerShell スクリプトでパラメーターを定義する
- PowerShell スクリプトの名前付きパラメーター
- PowerShell スクリプトのパラメーターにデフォルト値を割り当てる
- PowerShell スクリプトでパラメーターを切り替える
- PowerShell スクリプトの必須パラメーター
引数は、param()
と呼ばれる Windows PowerShell パラメーター関数を使用して処理します。Windows PowerShell パラメーター関数は、スクリプトの基本的なコンポーネントです。パラメータは、開発者がスクリプトユーザーが実行時に入力を提供できるようにする方法です。
この記事では、パラメーター関数を使用してスクリプトを作成する方法、それらを使用する方法、およびパラメーターを作成するためのいくつかのベストプラクティスについて学習します。
PowerShell スクリプトでパラメーターを定義する
管理者は、パラメーター関数 param()
を使用して、スクリプトおよび関数のパラメーターを作成できます。関数には、変数によって定義された 1つ以上のパラメーターが含まれています。
Hello_World.ps1
:
param(
$message
)
ただし、パラメータが必要なタイプの入力のみを受け入れるようにするために、ベストプラクティスでは、パラメータブロック [Parameter()]
を使用してデータ型をパラメータに割り当て、変数の前に角括弧 []
でデータタイプを囲むことがベストプラクティスです。
Hello_World.ps1
:
param(
[Parameter()]
[String]$message
)
上記の Hello_World.ps1
の例では、変数 message
は、指定された値のデータ型が String
の場合にのみ、渡された値を受け入れます。
PowerShell スクリプトの名前付きパラメーター
スクリプトでパラメータ関数を使用する 1つの方法は、パラメータ名を使用することです。このメソッドは、名前付きパラメータと呼ばれます。名前付きパラメーターを介してスクリプトまたは関数を呼び出す場合、パラメーターのフルネームとして変数名を使用します。
この例では、Hello_World.ps1
を作成し、パラメーター関数内に変数を定義しました。パラメータ関数内に 1つ以上の変数を配置できることを忘れないでください。
Hello_World.ps1
:
param(
[Parameter()]
[String]$message,
[String]$emotion
)
Write-Output $message
Write-Output "I am $emotion"
次に、.ps1
ファイルを実行するときに、名前付きパラメーターを引数として使用できます。
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'
出力:
Hello World!
I am happy
PowerShell スクリプトのパラメーターにデフォルト値を割り当てる
スクリプト内でパラメーターに値を指定することにより、パラメーターに値を事前に割り当てることができます。次に、実行行から値を渡さずにスクリプトを実行すると、スクリプト内で定義された変数のデフォルト値が使用されます。
param(
[Parameter()]
[String]$message = "Hello World",
[String]$emotion = "happy"
)
Write-Output $message
Write-Output "I am $emotion"
.\Hello_World.ps1
出力:
Hello World!
I am happy
PowerShell スクリプトでパラメーターを切り替える
使用できるもう 1つのパラメーターは、[switch]
データ型で定義されたスイッチパラメーターです。switch パラメータは、バイナリ値またはブール値に使用され、true
または false
を示します。
Hello_World.ps1
:
param(
[Parameter()]
[String]$message,
[String]$emotion,
[Switch]$display
)
if($display){
Write-Output $message
Write-Output "I am $emotion"
}else{
Write-Output "User denied confirmation."
}
以下の構文を使用して、script パラメーターを使用してスクリプトを呼び出すことができます。
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false
出力:
User denied confirmation.
PowerShell スクリプトの必須パラメーター
スクリプトの実行時に使用する必要のあるパラメーターが 1つ以上あるのが一般的です。パラメータブロック [Parameter()]
内に Mandatory
属性を追加することで、パラメータを必須にすることができます。
Hello_World.ps1:
param(
[Parameter(Mandatory)]
[String]$message,
[String]$emotion,
[Switch]$display
)
if($display){
Write-Output $message
Write-Output "I am $emotion"
}else{
Write-Output "User denied confirmation."
}
Hello_World.ps1
を実行すると、Windows PowerShell はスクリプトの実行を許可せず、値の入力を求めます。
.\Hello_World.ps1
出力:
cmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn