Windowsに標準搭載されているコマンドインターフェース「PowerShell」では、値や変数に対してさまざまな演算を行うことができます。
そこでここでは、WindowsのPowerShellでどのような演算子が使えるのかや、それぞれの演算子の基本的な使い方を解説します。
目次
算術演算子
算術演算子の一覧
演算子 | 説明 |
---|---|
+ | 2つの値を加算する |
- | 2つの値を減算する |
* | 2つの値を乗算する |
/ | 2つの値を除算する |
% | 2つの値の除算の余りを返す |
算術演算子の使用例
PS> $a = 5
PS> $b = 2
PS> $a + $b
7
PS> $a - $b
3
PS> $a * $b
10
PS> $a / $b
2.5
PS> $a % $b
1
代入演算子
代入演算子の一覧
演算子 | 説明 |
---|---|
= | 右辺の値を左辺の変数の値に代入する |
+= | 右辺の値を左辺の変数の値に加算する |
-= | 右辺の値を左辺の変数の値から減算する |
*= | 右辺の値で左辺の変数の値を乗算する |
/= | 右辺の値で左辺の変数の値を除算する |
%= | 右辺の値で左辺の変数の値を除算した余りを代入する |
代入演算子の使用例
PS> $a = 5
PS> $b = 2
PS> $a = $b
PS> $a
2
PS> $a += $b
PS> $a
7
PS> $a -= $b
PS> $a
3
PS> $a *= $b
PS> $a
10
PS> $a /= $b
PS> $a
2.5
PS> $a %= $b
PS> $a
1
単項演算子
単項演算子の一覧
演算子 | 説明 |
---|---|
++ | 左辺または右辺の変数の値をに1を加算する |
-- | 左辺または右辺の変数の値から1を減算する |
単項演算子の使用例
PS> $a = 5
PS> $a++
PS> $a
6
PS> $c =$a++
PS> $c
5
PS> $c =++$a
PS> $c
6
単項演算子は後置きすると、値を返してから加算または減算され、前置きすると加算または減算されてから値が返されます。
比較演算子
比較演算子の一覧
演算子 | 説明 |
---|---|
-eq | 左辺の値と右辺の値が等しい |
-ne | 左辺の値と右辺の値が異なる |
-gt | 左辺の値が右辺の値より大きい |
-ge | 左辺の値が右辺の値以上 |
-lt | 左辺の値が右辺の値より大きい |
-le | 左辺の値が右辺の値以下 |
比較演算子を使った場合、結果が真ならbool値のTrueが、結果が偽ならFalseが返されます。
比較演算子の使用例
PS> 1 -eq 1
True
PS> 1 -gt 2
False
PS> 3 -lt 4
True
比較演算子は文字列の比較にも使用できますが、デフォルトでは大文字と小文字が区別されません。大文字と小文字を区別するときは、演算子の先頭に「c」を付けます。
PS> $str = "Hello"
PS> $str -eq "hello"
True
PS> $str -ceq "hello"
False
論理演算子
論理演算子の一覧
演算子 | 説明 |
---|---|
-and | 論理積 |
-or | 論理和 |
-xor | 排他的論理和 |
-not | 論理否定 |
! | 論理否定 |
論理演算子を使った場合、結果が真ならbool値のTrueが、結果が偽ならFalseが返されます。
論理演算子の使用例
PS> (1-eq 1) -and (3 -eq 4)
False
PS> (1-eq 1) -or (3 -eq 4)
True
PS> (1-eq 1) -xor (3 -eq 4)
True
PS> (1-eq 1) -xor (3 -eq 3)
False
PS> !(1-eq 1)
False
PS> !(1-eq 2)
True
文字列演算子
文字列演算子の一覧
演算子 | 説明 |
---|---|
+ | 文字列の連結 |
+= | 文字列の追加 |
* | 文字列の繰り返し |
-like | 文字列をワイルドカードで比較し、一致でTrue |
-notlike | 文字列をワイルドカードで比較し、不一致でTrue |
-match | 文字列を正規表現で比較し、一致でTrue |
-notmatch | 文字列を正規表現で比較し、不一致でTrue |
-replace | 文字列を置換 |
-f | フォーマットの指定 |
文字列演算子の使用例
PS> $str1 = "My name is"
PS> $str2 = "Tarou"
PS> $str1 + $str2
My name isTarou
PS> $str2 * 2
TarouTarou
PS> $str2 -like "T*"
True
PS> $str2 -match "[a-z]"
True
PS> $str2 -match "[3-8]"
False
PS> $str2 -replace "Ta","Ji"
Jirou
なお、-match演算子で一致する文字列があった場合、シェル変数$matchesにパターンに一致する文字列が格納されます。
PS> $str1 = "My name is"
PS> $str1 -match "(.)(.)"
PS> $matches
Name Value
---- -----
2 y
1 M
0 My