PowerShell: 演算子まとめ

PowerShellでの算術演算子、比較演算子、論理演算子、文字列演算子、 代入演算子、単項演算子、 優先順位など演算子の使い方についてまとめています。

算術演算子

算術演算子には「+ - * / %」があり、 各算術演算子の意味は次の通りです。

演算子意味
+加算(足し算)
-減算(引き算)
*乗算(掛け算)
/除算(割り算)
%剰余(除算の余り)

算術演算子の使用例

Write-Host (2 + 3)  # 5

Write-Host (10 % 3) # 1

(詳細記事:算術演算子

比較演算子

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

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

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

比較演算子の使用例

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

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

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

文字列を比較する場合、 デフォルトでは大文字と小文字は区別されません。 「"a" -eq "A"」はTrue(真)となります。
大文字と小文字を区別する場合は先頭に「c」を加えて 「-ceq」と記述します。

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

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

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

(詳細記事: 比較演算子(-eq -ne -gt -ge -lt -le)

論理演算子

PowerShellで使用する論理演算子には 「-and -or -xor -not !」があります。 論理演算子は真偽値(True/False)のどちらかしか持たない条件式を 評価する演算子です。条件式は1つ又は2つの場合があります。

各演算子の意味や使い方は次の通りです。

演算子意味使い方
-and論理積条件式A -and 条件式B
-or論理和条件式A -or 条件式B
-xor排他的論理和条件式A -xor 条件式B
-not論理否定-not 条件式
!論理否定! 条件式

論理演算子の使用例

# 論理積(AND)
Write-Host ((1 -eq 1) -and (2 -eq 2)) # True
Write-Host ((1 -eq 1) -and (2 -eq 3)) # False

# 論理否定(!)
Write-Host (!(1 -eq 1)) # False
Write-Host (!(1 -eq 2)) # True

(詳細記事: 論理演算子(and or xor not !)

文字列演算子

PowerShellで使用する文字列演算子には 「+ += * -lile -notlike -match -notmatch -replace」があります。

「+ += * *=」

この4つは算術演算子や代入演算子として使われるケースが多いですが、 文字列演算子としても使用できます。各演算子の意味は次の通りです。

演算子説明
+文字列を連結
+=連結して代入
*文字列を繰り返す
*=繰り返して代入

使用例。

# +
Write-Host ("a" + "b") # ab

# +=
$s = "a"
$s += "b"
Write-Host $s          # ab

「-like -notlike -match -notmatch」

「like」はワイルドカード(*)による比較で、 「match」は正規表現による比較になります。

演算子説明
-likeワイルドカード比較で一致する場合True
-notlikeワイルドカード比較で一致しない場合True
-match正規表現比較で一致する場合True
-notmatch正規表現比較で一致しない場合True

使用例

Write-Host ("abcde" -like "abc*")     # True
Write-Host ("abcde" -like "*abc")     # False

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

「-replace」

「-replace」は文字列を置換するための演算子で、 置換した結果の文字列を返します。

演算子説明
-replace文字列置換

-replaceの使用例です。

$s = "abcde" -replace "abc", "xyz"

Write-Host $s  # xyzde

(詳細記事:文字列演算子

代入演算子

PowerShellで使用する代入演算子は 「= += -= *= /= %=」があります。

演算子意味使い方
=右辺の値を左辺に代入する$a = 1
+=右辺の値を左辺の値に加算する$a += 1
-=右辺の値を左辺の値から減算する$a -= 1
*=右辺の値を左辺の値に乗算する$a *= 1
/=右辺の値を左辺の値から除算する$a /= 1
%=右辺の値を左辺の値から除算した余り$a %= 1

代入演算子の使用例

$a = 1   # 1

$a = 1
$a += 5  # 6

(詳細記事:代入演算子

単項演算子

単項演算子には「+ - ++ --」があります。 単項演算子は変数や値(被演算子)1つに対して使用する演算子です。

単項演算子意味使用例
+正数を表す。数値に変換する+$a
-負数を表す。正負を反転する-$a
++インクリメント(数を1つ加える)$a++, ++$a
--デクリメント(数を1つ減らす)$a--, --$a

単項演算子の使用例

# 「++」
$a = 1
$a++
Write-Host $a  # 2

# 「--」
$a = 1
$a--
Write-Host $a  # 0

(詳細記事:単項演算子

演算子の優先順位

演算子の優先順位については次のような特徴があります。

  • 優先順位の高い方から先に演算される
  • 優先順位を変更する場合は()カッコを使う
  • 優先順位が同じ場合は先にある方が優先される
  • 大まかには算術演算子 > 比較演算子 > 代入演算子の順

以下は演算子の優先順位リストです。 上にある演算子ほど優先度が高くなっています。

++ --
! -not
-(単項演算子)
* / %
+ -
-eq -ne -gt -gt -lt -le
-like -notlike
-match -notmatch
-replace
-and -or -xor
= += -= *= /= %=

(詳細記事:演算子の優先順位

PowerShell