演算子
演算子と一口に言っても、PowerShellで使用可能な演算子は多数あります。代表的な演算子について例を挙げながら説明していきます。
算術演算子
算術演算子は四則演算を表す演算子です。PowerShellで使用可能な算術演算子は次のとおりです。
演算子 | 説明 |
+ | 2つの値を加算する |
- | 一方の値から他方の値を減算する |
- | 値を負の数値に変換する |
* | 2つの値を乗算する |
/ | 2つの値で除算を行う |
% | 除算で発生した余りを返す |
また、演算子には次の優先順位があります。演算の順番を変更するには、優先したい演算を「かっこ ()」で括ります。
- - (負の数を表すマイナス記号)
- *、/、%
- +、- (減算を表すマイナス記号)
では、算術演算子を使用して四則演算を行ってみましょう。コンソールウィンドウで下記のように入力してみてください。
PS C:\Work> 2 + 8 * 3
優先順位に従って、8 * 3を実行した後に 2 を加算したので、結果として26が返されます。
代入演算子
代入演算子は文字通り、値を代入するための演算子です。代入演算子には次のものがあります。
演算子 | 説明 |
= | 指定した値を変数に設定します。 |
+= | 指定した値を変数の値に加算するか、指定した値を既存の値に追加します。 |
-= | 指定した値を変数の値から減算します。 |
*= | 指定した値で変数の値を乗算するか、指定した値を既存の値に追加します。 |
/= | 指定した値で変数の値を除算します。 |
%= | 指定した値で変数の値を除算し、余りを変数に代入します。 |
いくつか例を示します。
まず =
演算子です。変数の項でも触れましたが、=
演算子を使用することで変数に値を代入できます。
PS C:\Work> $val = "Test"
次に +=
演算子ですが、この演算子は変数の値を増加(インクリメント)または追加します。
下記は、初期値として変数 $a
に 1を与え、その後に +=
演算子で2を加算しています。結果として 3 が変数にセットされます。
PS C:\Work> $a = 1 PS C:\Work> $a += 2 PS C:\Work> $a 3
+=
演算子は(*=
演算子も)文字列に対しても使用することができます。
文字列の場合は、変数に直前に入っていた文字列に対して、新しい文字列を追加します。下記を実行すると、それぞれの文字列が連結して"Windows PowerShell"という文字列が変数にセットされます。
PS C:\Work> $a = "Windows " PS C:\Work> $a += "Power" PS C:\Work> $a += "Shell" PS C:\Work> $a Windows PowerShell
*=
演算子は、1つの文字列を指定した数値分だけ連結して返します。
下記は "Test" という文字列を3つ連結し、結果として "TestTestTest"という文字列が変数にセットされます。
PS C:\Work4> $a = "Test" PS C:\Work4> $a *= 3 PS C:\Work4> $a TestTestTest
論理演算子
論理演算子は与えられた引数を評価し、1つの出力(TrueまたはFalse)を返します。論理演算子には次のものがあります。
演算子 | 説明 |
-and | 論理積 |
-or | 論理和 |
-not | 論理否定 |
-! | 論理否定 |
下記は変数$age
が30以上で40より小さいかどうかを-and
で判定しています(-ge
や-lt
に関しては、本記事の「比較演算子」の項を参照ください)。
PS C:\Work> $age = 35 PS C:\Work> ($age -ge 30) -and ($age -lt 40) PS C:\Work> True
比較演算子
比較演算子は与えられた引数を評価し、1つの出力(TrueまたはFalse)を返します。比較演算子には次のものがあります。
演算子 | 説明 |
-eq | 等しい |
-ne | 等しくない |
-gt | より大きい |
-ge | 以上 |
-lt | より小さい |
-le | 以下 |
-like | ワイルドカードによる比較 |
-notlike | ワイルドカードによる比較 |
-match | 正規表現による比較 |
-notmatch | 正規表現による比較 |
下記は変数 $val
が 数値の3に等しいか評価しています。
PS C:\Work> $val = 3 PS C:\Work> $val -eq 3 True
次に -like
演算子の例ですが、下記は文字列"PowerShell"が"Power"で始まっているかをlike検索しています。
PS C:\Work> "PowerShell" -like "Power*" True
-match
演算子は、文字列を正規表現と比較し一致するかどうかに応じてTrueまたはFalseを返します
PS C:\Work> "PowerShell" -match "Shell" True