about_Booleans
簡単な説明
ブール式の評価方法について説明します。
詳細な説明
PowerShell では、任意の型を Booleanとして暗黙的に処理できます。 PowerShell が他の型を Boolean 値に変換するために使用する規則を理解しておくことが重要です。
スカラー型からの変換
scalar型は、一度に 1 つの値のみを保持できるアトミック数量です。 次の型は $false
評価されます。
''
や空の文字列""
- 次のような NULL 値
$null
- の値を持つ任意の数値型
0
例 :
PS> $false -eq ''
True
PS> if ("") { $true } else { $false }
False
PS> if ($null) { $true } else { $false }
False
PS> if ([int]0) { $true } else { $false }
False
PS> if ([double]0.0) { $true } else { $false }
False
次の型は $true
評価されます。
- 空でない文字列
- 他のコレクション以外の型のインスタンス
例 :
# a non-collection type
PS> [bool]@{value = 0}
True
# non-empty strings
PS> if ('hello') { $true } else { $false }
True
PS> [bool]'False'
True
これは、 explicit 文字列解析とは異なります:
PS> [bool]::Parse('false')
False
PS> [bool]::Parse('True')
True
PS> [bool]::Parse('Not True')
MethodInvocationException: Exception calling "Parse" with "1" argument(s):
"String 'Not True' was not recognized as a valid Boolean."
コレクション型からの変換
配列は、PowerShell で最も一般的なコレクション型です。 これらの規則は、 IList インターフェイスを実装するコレクションに似た型に適用されます。
- 空のコレクションは常に
$false
- コマンドからの出力がないことを示す特殊な null 値
[System.Management.Automation.Internal.AutomationNull]::Value
常に$false
。 - 単一要素コレクションは、1 つだけの要素の Boolean 値に評価されます。
- 1 つ以上の要素を持つコレクションは常に
$true
。
例 :
# Empty collections
PS> [bool]@()
False
PS> [bool](Get-ChildItem | Where-Object Name -eq 'Non-existent-File.txt')
False
# Single-element collections
PS> $a = @(0)
PS> [bool]$a
False
PS> $b = @(1)
PS> [bool]$b
True
# Multi-element collections
PS> $c = @(0,0)
PS> [bool]$c
True
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
PowerShell