PowerShellにおける条件分岐「If」文で、論理演算子「and」「or」を使用する方法を解説します。
論理演算子 and と or の違い
PowerShell では、条件分岐に使用する条件を複数設定することが可能です。
複数の条件を設定する際に使用する「-and」と「-or」は以下の点が異なります。
- -and:複数の条件の両方を満たす場合に真(True)となる
- -or:複数の条件のどちらかを満たす場合に真(True)となる
ここから、実際にどのように処理されるか見ていきたいと思います。
and 演算子
and 演算子の書式とサンプルになります。
書式
If(条件式1 -and 条件式2){ 条件式1と条件式2の両方が True の場合の処理 }Else{ 条件式1と条件式2の両方または片方が False の場合の処理 }
サンプル①
下記のサンプルを実行すると、
If文の条件式1の「$str1 = “あいうえお”」と条件式2の「$str2 = “かきくけこ”」の両方を満たしているため、ターミナルに「条件を満たしています。」と表示されます。
$str1 = "あいうえお" $str2 = "かきくけこ" If($str1 -eq "あいうえお" -and $str2 -eq "かきくけこ"){ Write-Host "条件を満たしています。" }Else{ Write-Host "条件を満たしていません。" } pause
サンプル②
下記のサンプルでは、If文の条件式1の「$str1 = “あいうえお”」は満たしています。
しかし、条件式2は「$str2 = “かきくけこ”」ですが、実際の str2 の値は「さしすせそ」となっており、条件を満たしていません。
この場合は、If文の条件の両方を満たしていないため、ターミナルに「条件を満たしていません。」と表示されます。
$str1 = "あいうえお" $str2 = "さしすせそ" If($str1 -eq "あいうえお" -and $str2 -eq "かきくけこ"){ Write-Host "条件を満たしています。" }Else{ Write-Host "条件を満たしていません。" } pause
or 演算子
or 演算子の書式とサンプルになります。
書式
If(条件式1 -or 条件式2){ 条件式1と条件式2の両方または片方が True の場合の処理 }Else{ 条件式1と条件式2の両方が False の場合の処理 }
サンプル③
下記のサンプルでは、If文の条件式1は「$str1 = “さしすせそ”」となっていますが、str1 の値は「あいうえお」となっており、条件を満たしていません。
しかし、条件式2の「$str2 = “かきくけこ”」を満たしているため、ターミナルに「条件を満たしています。」と表示されます。
$str1 = "あいうえお" $str2 = "かきくけこ" If($str1 -eq "さしすせそ" -or $str2 -eq "かきくけこ"){ Write-Host "条件を満たしています。" }Else{ Write-Host "条件を満たしていません。" } pause
サンプル④
下記のサンプルでは、If文の条件式1は「$str1 = “さしすせそ”」となっていますが、str1 の値は「あいうえお」となっており、条件を満たしていません。
また、条件式2は「$str2 = “かきくけこ”」ですが、str2 の値は「たちつてと」なので、こちらも条件を満たしていません。
なので、ターミナルに「条件を満たしていません。」と表示されます。
$str1 = "あいうえお" $str2 = "かきくけこ" If($str1 -eq "さしすせそ" -or $str2 -eq "たちつてと"){ Write-Host "条件を満たしています。" }Else{ Write-Host "条件を満たしていません。" } pause
比較演算子の一覧
PowerShellで使える比較演算子の一覧です。
コメント