以下では特殊演算子以外を一般演算子として表記しています。和訳も便宜上のものです。適切な名前があればご指摘いただけると嬉しいです。
演算子の一覧
一般演算子
分類 | 演算子 |
---|---|
算術演算子 | + - * / % |
代入演算子 | = += -= *= /= %= |
比較演算子(大小) | -eq -ne -gt -lt -le -ge |
比較演算子(正規表現) | -match -notmatch -replace -creplace -ireplace |
比較演算子(ワイルドカード) | -like -notlike |
比較演算子(包含) | -in -notin -contains -notcontains |
比較演算子(型) | -is -isnot |
比較演算子(論理) | -bAND -bOR -bXOR -bNOT|ビットワイズhttps://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_operators?view=powershell-7#comparison-operators |
論理演算子 | -and -or -xor -not ! |
リダイレクト演算子 | > >> 2> 2>> 2>&1 |
分割・結合演算子 | -split -join |
型演算子 | -is -isnot -as |
単項演算子 | ++ -- |
特殊演算子
分類 | 演算子 |
---|---|
グループ化演算子 | ( ) |
部分式演算子 | $( ) |
配列部分式演算子 | @( ) |
コール演算子 | & |
バックグラウンド演算子 | & |
キャスト演算子 | [ ] |
カンマ演算子 | , |
ドットソーシング演算子 | . |
書式化演算子 | -f |
インデックス演算子 | [ ] |
パイプライン演算子 | | |
パイプライン連鎖演算子 | && || |
範囲演算子 | .. |
メンバーアクセス演算子 | . |
静的メンバー演算子 | :: |
三項演算子 | ? <if-true> : <if-false> |
Null合体演算子 | ?? |
Null合体代入演算子 | ??= |
Null条件演算子(実験的機能) | ?. ?[ ] |
各演算子の用法
分類 | 演算子 | 用例 |
---|---|---|
算術演算子 | + | 1 + 2 #3 |
算術演算子 | - | 1 - 2 #-1 |
算術演算子 | * | 1 * 2 #2 |
算術演算子 | / | 1 / 2 #0.5 |
算術演算子 | % | 1 % 2 #1(1を2で割ったあまり) |
代入演算子 | = | $a = 1 |
代入演算子 | += | $a += 1 |
代入演算子 | -= | $a -= 1 |
代入演算子 | *= | $a *= 1 |
代入演算子 | /= | $a /= 1 |
代入演算子 | %= | $a %= 1 |
比較演算子(大小) | -eq | 1 -eq 2 #False(1 = 2) |
比較演算子(大小) | -ne | 1 -ne 2 #False(1 != 2) |
比較演算子(大小) | -gt | 1 -gt 2 #False(1 > 2) |
比較演算子(大小) | -lt | 1 -lt 2 #True(1 < 2) |
比較演算子(大小) | -le | 1 -le 2 #True(1 <= 2) |
比較演算子(大小) | -ge | 1 -ge 2 #False(1 >= 2) |
比較演算子(正規表現) | -match | <長いのでこちら> |
比較演算子(正規表現) | -notmatch | |
比較演算子(正規表現) | -replace | "0123abcABCあいう" -replace "[a-z]","-" #"0123------あいう" |
比較演算子(正規表現) | -ireplace | "0123abcABCあいう" -ireplace "[a-z]","-" #"0123------あいう" |
比較演算子(正規表現) | -creplace | "0123abcABCあいう" -creplace "[a-z]","-" #"0123---ABCあいう" |
比較演算子(ワイルドカード) | -like | "0123abcABCあいう" -like "012う" #True "0123abcABCあいう","aaa" -like "aa*" #"aaa" |
比較演算子(ワイルドカード) | -notlike | "0123abcABCあいう" -like "012*う" #False "0123abcABCあいう","aaa" -notlike #"0123abcABCあいう" |
比較演算子(包含) | -in | 4 -in 1..4 #True |
比較演算子(包含) | -notin | 4 -notin 1..4 #False |
比較演算子(包含) | -contains | 1..4 -contains 2 #True |
比較演算子(包含) | -notcontains | 1..4 -contains 2 #False |
比較演算子(型) | -is | 0 -is [int] #True |
比較演算子(型) | -isnot | 0 -isnot [int] #False |
比較演算子(論理) | -bAND | |
比較演算子(論理) | -bOR | |
比較演算子(論理) | -bXOR | |
比較演算子(論理) | -bNOT | |
論理演算子 | -and | |
論理演算子 | -or | |
論理演算子 | -xor | |
論理演算子 | -not | |
論理演算子 | ! | |
リダイレクト演算子 | > | |
リダイレクト演算子 | >> | |
リダイレクト演算子 | 2> | |
リダイレクト演算子 | 2>> | |
リダイレクト演算子 | 2>&1 | |
分割・結合演算子 | -split | |
分割・結合演算子 | -join | |
型演算子 | -is | |
型演算子 | -isnot | |
型演算子 | -as | |
単項演算子 | ++ | |
単項演算子 | -- | |
グループ化演算子 | ( ) | |
部分式演算子 | $( ) | |
配列部分式演算子 | @( ) | |
コール演算子 | & | |
バックグラウンド演算子 | & | |
キャスト演算子 | [ ] | |
カンマ演算子 | ||
ドットソーシング演算子 | . | |
書式化演算子 | -f | |
インデックス演算子 | [ ] | $a[0] $b["a"] |
パイプライン演算子 | | | |
パイプライン連鎖演算子 | && | |
パイプライン連鎖演算子 | || | |
範囲演算子 | .. | |
メンバーアクセス演算子 | . | a.b |
静的メンバー演算子 | :: | [X]::Y |
三項演算子 | ? <if-true> : <if-false> | |
Null合体演算子 | ?? | |
Null合体代入演算子 | ??= | |
Null条件演算子(実験的機能) | ?. | ${x}?.name #{}は?が変数名と認識されることの回避 |
Null条件演算子(実験的機能) | ?[ ] | ${x}?[0] #{}は?が変数名と認識されることの回避 |
-match
の用例
-match
演算子は左項が単一の値(スカラー)か配列かで動作を変えます。スカラーの場合は正規表現のマッチ結果を真偽値として返して詳細を$Matches
に設定しますが、配列の場合はマッチした要素の配列を返して$Matches
は設定しません。
"abc", "012", "あいう", "0aあ", "01abあい" -match "\d" #"012","0aあ","01abあい" "abc012あいう" -match "\d\d" #True $Matches #Name Value #---- ----- #0 01 "abc012あいう" -match "(?<num>\d+)(?<hiragana>[あ-ん])" #True $Matches #Name Value #---- ----- #num 012 #hiragana あ #0 012あ