PowerShellを使用していると時々、演算子周りでちょくちょく混乱するのでこちらにまとめておきます
算術演算子
まずは、基本的な計算で使用する演算子です
演算子 | 内容 |
---|---|
+ | 足し算(加算) |
- | 引き算(減算) |
* | 掛け算(乗算) |
/ | 割り算(除算) |
% | 割り算のあまり(剰余) |
上記の使用例
Write-Host (1 + 1) # 2
Write-Host (5 - 2) # 3
Write-Host (3 * 4) # 12
Write-Host (9 / 3) # 3
Write-Host (5 % 2) # 1
代入演算子
代入演算子も意外とよく使います
演算子 | 内容 |
---|---|
= | 右辺の値を左辺の値に代入する |
+= | 右辺の値を左辺の値を加算する |
-= | 右辺の値を左辺の値から減算する |
*= | 右辺の値を左辺の値から乗算する |
/= | 右辺の値を左辺の値から除算する |
%= | 右辺の値を左辺の値から除算した余り |
# 代入
Write-Host ($a = 10) # 10
#加算
Write-Host ($a += 5) # 15
# 減算
Write-Host ($a -= 7) # 8
# 乗算
Write-Host ($a *= 6) # 48
# 除算
Write-Host ($a /= 12) # 4
# 除算の余り
Write-Host ($a %= 3) # 1
比較演算子
次によく使う比較演算子です
演算子 | 内容 | C#での演算子 |
---|---|---|
-eq | 等しい(左辺と右辺の値が等しい) | == |
-ne | 等しくない(左辺と右辺の値が等しくない) | != |
-gt | より大きい(左辺が右辺の値より大きい) | > |
-ge | 以上(左辺が右辺の値以上) | >= |
-lt | より小さい(左辺が右辺の値より小さい) | < |
-le | 以下(左辺が右辺の値以下) | <= |
上記の使用例
# 等しい(-eq)
Write-Host (100 -eq 100) # True
Write-Host ("Hoge" -eq "piyo") # False
# 等しくない(-ne)
Write-Host ("Hoge" -ne "piyo") # True
Write-Host (10 -ne 10) # False
# より大きい(-gt)
Write-Host (20 -gt 10) # True
Write-Host (10 -gt 20) # False
# 以上(-ge)
Write-host (110 -ge 110) # True
Write-host (100 -ge 110) # False
# より小さい(-lt)
Write-host (100 -lt 110) # True
Write-host (110 -lt 110) # False
# 以下(-le)
Write-host (110 -le 110) # True
Write-host (120 -le 110) # False
文字列比較のオプション
文字列を比較する際に大文字と小文字を区別する必要がある場合
デフォルトでは大文字と小文字を区別せずに単純な文字列として比較されます
オプション | 内容 |
---|---|
c | 大文字・小文字を区別する |
i | 区別しない(デフォルトの設定。特に指定しない場合の設定) |
上記の使用例
# デフォルト(何も指定しない場合)
Write-host ("Hoge" -eq "hoge") # True
# 大文字・小文字を区別する
Write-host ("Piyo" -ceq "piyo") # False
# 大文字・小文字を区別しない
Write-Host ("Huga" -ieq "huga") # True
論理演算子
こちらもよく使用する、論理演算子です
演算子 | 内容 | C#での演算子 |
---|---|---|
-and | 条件式Aと条件式Bが両方とも正しい | && |
-or | 条件式Aと条件式Bのどちらか一方が正しい | || |
-not | 条件式の結果を反転させる | ! |
上記の使用例
# And
Write-Host (("huga" -eq "huga") -and (1 -ne 2)) # True
Write-Host ((10 -ne 10) -and (100 -eq 100)) # False
# Or
Write-Host (("Hoge" -eq "hoge") -or (10 -ne 10)) # True
Write-Host (("piyo" -eq "hoge") -or (200 -ne 200)) # False
# Not
Write-Host (-not ("Huga" -eq "huga")) # False
Write-Host (-not ("Piyo" -eq "huga")) # True
文字列演算子
ワイルドカード比較、正規表現比較
演算子 | 内容 |
---|---|
-like | ワイルドカード比較で一致する場合True |
-notlike | ワイルドカード比較で一致しない場合True |
-match | 正規表現比較で一致する場合True |
-notmatch | 正規表現比較で一致しない場合True |
上記の使用例(正規表現についてはここでは説明していません)
# like
Write-Host ("HugaPiyo" -like "Huga*") # True
Write-Host ("HugaPiyo" -like "*Huga") # False
#notlike
Write-Host ("HugaPiyo" -notlike "*Huga") # True
Write-Host ("HugaPiyo" -notlike "Huga*") # False
# match
Write-Host ("HugaPiy" -match "HugaPiyo?") # True
Write-Host ("HugaPiyoHoge" -match "Huga.Piyo") # False
# notmatch
Write-Host ("HugaPiyoHoge" -notmatch "Huga.Piyo") # True
Write-Host ("HugaPiy" -notmatch "HugaPiyo?") # False
置き換え
演算子 | 内容 |
---|---|
-replace | 対象の文字列を置き換える(大文字・小文字は判断しない) |
-creplace | 対象の文字列を置き換える(大文字・小文字を判断する) |
上記の使用例
# replace
Write-Host ("HugaHoge" -replace "h", "A") # AugaAoge
# creplace
Write-Host ("HugaHoge" -creplace "h", "A") # HugaHoge
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
アドバンスド・ソリューション株式会社
アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...
サイトへ移動
-
お問い合わせ | アドバンスド・ソリューション株式会社
お問い合わせはこちら