if 文で複数の条件を組み合わせる方法

  1. PowerShell の if ステートメント
  2. PowerShell の if ステートメントで複数の条件を組み合わせるために論理演算子を使用する
  3. PowerShell の if ステートメントで複数の条件を組み合わせるために複数の演算子を使用する
  4. PowerShell で複数の条件を組み合わせるための if ステートメントのネスティング
  5. 結論
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 ステートメントが $number10 以上かどうかをチェックします。この条件が満たされると、ネストされた if ステートメントが進み、$number20 以下かどうかをチェックします。

両方の条件が真である場合にのみ、Write-Host コマンドが実行されます。出力には、両方の条件が満たされ、"The number is between 10 and 20."というメッセージが印刷されます。

結論

結論として、PowerShell の if ステートメントで複数の条件を組み合わせることは、効率的なスクリプト作成にとって不可欠です。論理演算子 -and-or-not、および -xor を使用することで、幅広いスクリプティングの課題に取り組むための複雑な条件付きロジックを作成できます。

単純な条件でもネストされた if ステートメントでも、PowerShell は情報に基づいた意思決定を行い、スクリプトで適切なアクションを実行するのに役立つ強力なツールを提供します。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - PowerShell Statement