コマンドプロンプトから PowerShell スクリプトにブールパラメータを渡す
PowerShell スクリプトは、拡張子が .ps1
のテキストファイルに保存されたコマンドのコレクションです。PowerShell は、これらのコマンドを順番に実行して、さまざまなアクションを実行します。param
ステートメントを使用して、PowerShell でパラメーターを定義できます。
これは、ユーザーからの入力として値を受け取る単純な PowerShell スクリプト myscript.ps1
の例です。
param($a,$b)
if($a -lt $b){
Write-Host "$a is less than $b"
}
else{
Write-Host "$a is not less than $b"
}
以下のコマンドを使用して値を渡し、コマンドプロンプトから上記のスクリプトを実行できます。
powershell.exe -NoProfile -Command .\myscript.ps1 -a 4 -b 5
出力:
4 is less than 5
ご覧のとおり、コマンドプロンプトから PowerShell スクリプトに値を渡すことができました。コマンドプロンプトから PowerShell スクリプトにブール値
の値を渡す方法を説明します。ブール値は、TRUE
または FALSE
のいずれかになります。
ブールパラメータを使用して、コマンドプロンプトから PowerShell スクリプトにブール値を渡す
パラメータのデータ型を [bool]
に設定して、コマンドプロンプトから PowerShell スクリプトにブール値を渡すことができます。
param([int]$a, [bool]$b)
switch($b){
$true {"It is true."}
$false {"It is false."}
}
ブールパラメータは、$True
、$False
、1
、0
などのブール値と数値のみを受け入れます。
powershell.exe -NoProfile -Command .\myscript.ps1 -a 1 -b $True
出力:
It is true.
False
値を試してください:
powershell.exe -NoProfile -Command .\myscript.ps1 -a 5 -b 0
出力:
It is false.
switch
パラメーターを使用して、コマンドプロンプトから PowerShell スクリプトにブール値を渡する
PowerShell の switch
パラメーターは値を取りません。しかし、それは本質的にブール
であり、その存在または不在を通じてブールの true
または false
の値を伝えます。したがって、スイッチパラメータが存在する場合、実際の値になります。また、スイッチパラメータがない場合、値は false になります。switch
パラメーターは使いやすく、PowerShell 構文があまり自然ではないブール
パラメーターよりも優先されます。
param ([int] $a, [switch] $b)
switch($b){
$true {"The value is $b."}
$false {"The value is $b."}
}
switch
パラメータが存在する場合:
powershell.exe -NoProfile -Command .\myscript2.ps1 -a 5 -b 1
出力:
The value is True.
switch
パラメータがない場合:
powershell.exe -NoProfile -Command .\myscript2.ps1 -a 5
出力:
The value is False.