【PowerShell】条件分岐「if」文で論理演算子(and,or)を使用する方法


この記事はプロモーションを含みます。

PowerShell

ホーム > PowerShell 逆引きリファレンス

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で使える比較演算子の一覧です。

コメント

タイトルとURLをコピーしました