PowerShellのブールリテラルとは何ですか?
3 に答える
$true
および$false
。
ただし、これらは定数です。ブール値の言語レベルのリテラルはありません。
必要な場所に応じて、タイプがブール値である必要がある場合、たとえばブール値を必要とする(そして競合するオーバーロードがない)メソッド呼び出しや条件ステートメントで、ブール値に強制するものを使用することもできます。たとえば、null以外のほとんどのオブジェクトはtrueです。null
、空の文字列、空の配列、および数値0
はfalseです。
[bool]1
また[bool]0
、動作します。
既存の回答にさらに情報を追加するには:ブールリテラル。PowerShellスクリプトのコマンドラインパラメーターとして使用した場合もそのまま機能します$true
。$false
次の名前のファイルに保存されている以下のPowerShellスクリプトの場合installmyapp.ps1
:
param (
[bool]$cleanuprequired
)
echo "Batch file starting execution."
これで、PowerShellコマンドラインからこのPowerShellファイルを呼び出す必要がある場合、次のように実行できます。
installmyapp.ps1 -cleanuprequired $true
また
installmyapp.ps1 -cleanuprequired 1
ここで1
と $true
は同等です。また、0
と $false
は同等です。
注true
:文字列リテラルが自動的にブール値に変換されることを期待しないでください。たとえば、次のコマンドを実行すると、次のようになります。
installmyapp.ps1 -cleanuprequired true
以下のエラーでスクリプトの実行に失敗します。
パラメーター'cleanuprequired'の引数変換を処理できません。値「System.String」をタイプ「System.Boolean」に変換できません。ブールパラメータは、$ True、$ False、1、0などのブール値と数値のみを受け入れます。