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 = += -= *= /= %=
(詳細記事:演算子の優先順位)