PowerShell: 比較演算子(eq ne gt ge lt le)

PowerShellで使用する比較演算子には 「-eq -ne -gt -ge -lt -le」やがあります。 比較演算子は2つの式や値を比較し、 結果を真偽値のTrue(真)又はFalse(偽)で返します。

他の多くのプログラミング言語では 比較演算子として「=」「>」「<」記号を使いますが、 PowerShellでは「-eq」のように「-(ハイフン)」+「英文字」となっており、 英単語を省略した文字が使用されています。 例えば「-eq」の場合は「equal」の略です。

各演算子の意味と英語、他のプログラミング言語で使われる一般的な記号は次の通りです。

演算子意味英語一般的な記号
-eq等しいequal=, ==
-ne等しくないnot equal<>, !=
-gtより大きいgreater than>
-ge以上greater than or equal>=
-ltより小さいless than<
-le以下less than or equal<=

以下は比較演算子の使用例です。 各演算子でTrueとなる場合とFalseになる場合を記述しています。

# -eq 等しい
Write-Host (10 -eq 10)  # True
Write-Host (10 -eq 20)  # False

# -ne 等しくない
Write-Host (10 -ne 10)  # False
Write-Host (10 -ne 20)  # True

# -gt より大きい
Write-Host (10 -gt 10)  # False
Write-Host (10 -gt 9)   # True

# -ge 以上
Write-Host (10 -ge 10)  # True
Write-Host (10 -ge 20)  # False

# -lt より小さい
Write-Host (10 -lt 10)  # False
Write-Host (10 -lt 20)  # True

# -le 以下
Write-Host (10 -le 10)  # True
Write-Host (10 -le 9)   # False

文字列を比較する場合の付加文字「c」と「i」

文字列を比較する場合、 デフォルトでは大文字と小文字は区別されません。 「"a" -eq "A"」はTrue(真)となります。

大文字と小文字を区別する場合は先頭に「c」を加えて「-ceq」と記述します。 区別しない場合は「i」を加えます。 何も加えない場合は「i」と同じで区別しません。

オプション意味
c大文字・小文字を区別する
i区別しない(デフォルト)
Write-Host ("a" -eq "A")  # True

Write-Host ("a" -ceq "A") # False

Write-Host ("a" -ieq "A") # True
PowerShell