PowerShell: 論理演算子(and or xor not !)
PowerShellで使用する論理演算子には
「-and -or -xor -not !」があります。
論理演算子は真偽値(True/False)のどちらかしか持たない条件式を
評価する演算子です。条件式は1つ又は2つの場合があります。
例えば「条件Aと条件BがどちらもTrue(真)の場合、True(真)を返す」、 「条件Aまたは条件BのいずれかがTrue(真)の場合、True(真)を返す」 などの演算を行います。
各演算子の意味や使い方は次の通りです。
演算子 | 意味 | 使い方 |
---|---|---|
-and | 論理積 | 条件式A -and 条件式B |
-or | 論理和 | 条件式A -or 条件式B |
-xor | 排他的論理和 | 条件式A -xor 条件式B |
-not | 論理否定 | -not 条件式 |
! | 論理否定 | ! 条件式 |
論理積(AND)は条件式2つのどちらもTrueの場合にTrueを返し、 論理和(OR)は条件式2つのどちらかがTrueの場合にTrueを返します。 排他的論理和(XOR)は2つの条件式の真偽値が異なる場合にTrueを返し、 同じ場合はFalseを返します。 論理否定(NOT)は条件式がTrueの場合はFalseを返し、 条件式がFalseの場合はTrueを返します。 「-not」と「!」は同じ意味合いです。
以下は論理演算子の使用例です。 各演算子でTrueとなる場合とFalseになる場合を記述しています。
# 論理積(AND) Write-Host ((1 -eq 1) -and (2 -eq 2)) # True Write-Host ((1 -eq 1) -and (2 -eq 3)) # False # 論理和(OR) Write-Host ((1 -eq 1) -or (2 -eq 3)) # True Write-Host ((1 -eq 2) -or (2 -eq 3)) # False # 排他的論理和(XOR) Write-Host ((1 -eq 1) -xor (2 -eq 2)) # False Write-Host ((1 -eq 1) -xor (2 -eq 3)) # True \ # 論理否定(NOT) Write-Host (-not (1 -eq 1)) # False Write-Host (-not (1 -eq 2)) # True # 論理否定(!) Write-Host (!(1 -eq 1)) # False Write-Host (!(1 -eq 2)) # True
論理演算子を使う場合は()カッコを効果的に使用するようにしてください。 同じ意味の文を、()カッコを使う場合と使わない場合で比較してみます。
# ()カッコを使う場合 Write-Host ((1 -eq 1) -and (2 -eq 2)) # ()カッコを使わない場合 Write-Host (1 -eq 1 -and 2 -eq 2)
上の文の方が可読性・メンテナンス性が高くなります。
(まとめ記事: PowerShell 演算子)