189

PowerShellのブールリテラルとは何ですか?

4

3 に答える 3

211

$trueおよび$false

ただし、これらは定数です。ブール値の言語レベルのリテラルはありません。

必要な場所に応じて、タイプがブール値である必要がある場合、たとえばブール値を必要とする(そして競合するオーバーロードがない)メソッド呼び出しや条件ステートメントで、ブール値に強制するものを使用することもできます。たとえば、null以外のほとんどのオブジェクトはtrueです。null、空の文字列、空の配列、および数値0はfalseです。

于 2012-05-14T10:06:51.453 に答える
20

[bool]1また[bool]0、動作します。

于 2012-05-15T11:16:13.557 に答える
8

既存の回答にさらに情報を追加するには:ブールリテラル。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などのブール値と数値のみを受け入れます。

于 2018-05-15T08:42:32.643 に答える