if 文で複数の条件を組み合わせる方法
-
PowerShell の
if
ステートメント -
PowerShell の
if
ステートメントで複数の条件を組み合わせるために論理演算子を使用する -
PowerShell の
if
ステートメントで複数の条件を組み合わせるために複数の演算子を使用する -
PowerShell で複数の条件を組み合わせるための
if
ステートメントのネスティング - 結論

PowerShell の if
ステートメントは、意思決定のための強力なツールです。しかし、多くのタスクでは、より正確な制御のために複数の条件を組み合わせる必要があります。
この記事では、PowerShell の if
ステートメントで論理演算子を使用して複数の条件を組み合わせるさまざまな方法を見ていきます。
PowerShell の if
ステートメント
以下は if
ステートメントのシンプルな例です。もしカッコ内の条件が真に評価されると、Write-Host "2 is equal to 2."
というコマンドが実行されます。
コード:
if (2 -eq 2) {
Write-Host "2 is equal to 2."
}
カッコ ()
内の指定された条件が $true
に評価されると、ブレース {}
内のコマンドが実行されます。
出力:
2 is equal to 2.
条件が $false
の場合、そのコードブロックはスキップされます。上記の例は 1つの条件を使用していますが、if
ステートメントでも複数の条件を評価できます。
PowerShell の if
ステートメントで複数の条件を組み合わせるために論理演算子を使用する
論理演算子は PowerShell 内で文や式を接続します。これらの演算子を使用することで、単一の式を使って複数の条件をテストできます。
PowerShell でサポートされている論理演算子は -and
、-or
、-not
、-xor
、および!
です。この記事では、if
ステートメントで複数の条件を組み合わせるために -and
、-or
、-not
、および -xor
演算子の使用についてのみ説明します。
PowerShell の if
ステートメントで複数の条件を組み合わせるために -and
演算子を使用する
以下の例では、-and
演算子を使用して 2つの文を if
ステートメントで接続します。最初の条件 5 < 10
が真で、2つ目の条件 7 > 5
も真であれば、Write-Host
コマンドが実行されます。
コード:
if ((5 -lt 10) -and (7 -gt 5)) {
Write-Host "The above conditions are true."
}
出力:
The above conditions are true.
この場合、両方の条件が真であるため、コードブロックが実行され、出力に"The above conditions are true."
というメッセージが印刷されます。
PowerShell の if
ステートメントで複数の条件を組み合わせるために -or
演算子を使用する
このコードでは、-lt
(未満)および -gt
(超過)演算子を使用して、5 が 10 未満または 7 が 5 より大きいかを確認しています。そして、-or
演算子を使用して、(5 -lt 10)
または (7 -gt 5)
のどちらかが真かどうかを確認します。
コード:
if ((5 -lt 10) -or (7 -gt 5)) {
Write-Host "At least one of the above conditions is true."
}
else {
Write-Host "Neither of the above conditions is true."
}
出力:
At least one of the above conditions is true.
元のコードでは両方の条件が真であるため、"At least one of the conditions is true."
と印刷されます。
PowerShell の if
ステートメントで複数の条件を組み合わせるために -not
演算子を使用する
以下のコードでは、数値を表す変数 $number
があります。-lt
(未満)および -gt
(超過)演算子を使用して、数値が 5 未満または 10 を超えているかどうかを確認します。
-or
演算子は、その左側と右側にある 2つの条件を組み合わせるために使用されます。いずれかの条件が真である場合、真を返します。両方の条件が偽であるため、-or
式は偽に評価されます。
-not
演算子は -or
式の結果に適用されます。-or
式が偽であるため、-not
を適用すると真になります。
コード:
$number = 7
if (-not ($number -lt 5 -or $number -gt 10)) {
Write-Host "The number is between 5 and 10 (inclusive)."
}
else {
Write-Host "The number is outside the range of 5 to 10."
}
出力:
The number is between 5 and 10 (inclusive).
-not
演算子が組み合わされた条件を真にするため、if
ブロック内のコードが実行されます。出力は、$number = 7
の値が 5 から 10 の範囲内(包括的)にあることを示します。
PowerShell の if
ステートメントで複数の条件を組み合わせるために -xor
演算子を使用する
以下のコードは 2つの条件をチェックし、-xor
演算子を使用してその組み合わされた真理値を決定します。if
ステートメント内には 2つの条件があります。最初の条件は 5 が 10 未満であるかどうか、2つ目の条件は 7 が 5 より大きいかどうかです。
-xor
演算子は排他的 OR
演算子であり、オペランドのうちの 1つだけが真の場合に真を返し、両方のオペランドが真または両方が偽の場合には偽を返します。
この場合、両方の条件が真であるため、-xor
式は偽に評価され、else
ブロック内のコードが実行されます。
コード:
if ((5 -lt 10) -xor (7 -gt 5)) {
Write-Host "Exactly one of the above conditions is true."
}
else {
Write-Host "Neither or both of the above conditions are true."
}
出力:
Neither or both of the above conditions are true.
出力は"Neither or both of the above conditions are true."
と印刷され、両方の条件が排他的に真ではないことを示しています。両方の条件は一緒に真または偽です。
PowerShell の if
ステートメントで複数の条件を組み合わせるために複数の演算子を使用する
同様に、PowerShell の if
ステートメントで論理演算子を使用して複数の条件を組み合わせることができます。この例では、組み合わされた条件が true
または false
に基づいて異なるコマンドを実行します。
以下のコードは、論理演算子 -and
および -or
を使用して複数の条件を組み合わせます。これらの条件のいずれかが真であれば、最初のコマンド(Write-Host "It is true."
)が実行され、それ以外の場合は 2 番目のコマンド(Write-Host "It is false."
)が実行されます。
コード:
if (((10 -lt 20) -and (10 -eq 10)) -or ((15 -gt 5) -and (12 -lt 6))) {
Write-Host "It is true."
}
else {
Write-Host "It is false."
}
出力:
It is true.
ここでは、if
ステートメントが組み合わされた条件をチェックし、条件の評価に基づいて適切なコマンドブロックを実行します。条件が真であるため、"It is true."
というメッセージが印刷されました。
それぞれの条件セットをカッコ ()
内に囲み、特定の要件に適した論理演算子を使用することを忘れないでください。
PowerShell で複数の条件を組み合わせるための if
ステートメントのネスティング
if
ステートメントのネスティングは、複雑な条件があり、複数の評価レイヤーが必要な場合に有用です。たとえば、特定の文脈内で条件をチェックする必要がある場合や、さまざまな条件に基づいて異なるアクションを実行する場合、if
ステートメントのネスティングを使用すると、より構造化されたアプローチが可能になります。
このコードでは、変数 $number = 15
を宣言します。そして、外部の if
ステートメントを作成し、$number が 10 以上かどうか
をチェックします。
外部の条件が真の場合、ネストされた if
ステートメントが $number が 20 以下かどうか
を確認します。
コード:
$number = 15
if ($number -ge 10) {
if ($number -le 20) {
Write-Host "The number is between 10 and 20."
}
}
出力:
The number is between 10 and 20.
このコードでは、外部の if
ステートメントが $number
が 10 以上かどうか
をチェックします。この条件が満たされると、ネストされた if
ステートメントが進み、$number
が 20 以下かどうか
をチェックします。
両方の条件が真である場合にのみ、Write-Host
コマンドが実行されます。出力には、両方の条件が満たされ、"The number is between 10 and 20."
というメッセージが印刷されます。
結論
結論として、PowerShell の if
ステートメントで複数の条件を組み合わせることは、効率的なスクリプト作成にとって不可欠です。論理演算子 -and
、-or
、-not
、および -xor
を使用することで、幅広いスクリプティングの課題に取り組むための複雑な条件付きロジックを作成できます。
単純な条件でもネストされた if
ステートメントでも、PowerShell は情報に基づいた意思決定を行い、スクリプトで適切なアクションを実行するのに役立つ強力なツールを提供します。