PowerShellの比較演算子は-eqや-neなどの文字列で記述し、学生の頃数学で習ったような等号(=)、大なり(>)、小なり(<)を使いません。
なので、演算子のパターンを覚えておく必要があります。
ただ一覧化を見るとワンパターンなのに気づき、何度か構文を記述をすると慣れてくるはずです。
チートシート
PowerShellの比較演算子のチート表です。
比較演算子 | 覚え方(英語) | Java(参考) | 意味 | 挙動 |
---|---|---|---|---|
-eq | equal | == | 等しい | 左辺と右辺が等しい場合、$trueを返します |
-ne | not equal | != | 等しくない | 左辺と右辺が等しくない場合、$trueを返します |
-lt | less than | < | より小さい | 左辺が右辺より小さい場合、$trueを返します |
-le | less than or equal | <= | 以下 | 左辺が右辺以下の場合、$trueを返します |
-gt | greater than | > | より大きい | 左辺が右辺より大きい場合、$trueを返します |
-ge | greater than or equal | = | 以上 | 左辺が右辺以上の場合、$trueを返します |
基本はequal、less、greaterと数合わせのthanの4単語の頭文字から2文字とって、比較演算子になっているようです。
eの文字が入っていれば、等価(==)を含みます。
使用例
ここから下はチートシートでイメージがつかない場合の使用例です。(初学者向けです)
-eq(equal)
-eq(equal)の使用例です。
ソースコード
$a = 1
if($a -eq 1){
Write-Host "1 -eq 1"
}
if($a -eq 2){
Write-Host "1 -eq 2"
}
Read-Host
実行結果
1 -eq 1
-ne(not equal)
-ne(not equal)の使用例です。
ソースコード
$a = 1
if($a -ne 1){
Write-Host "1 -ne 1"
}
if($a -ne 2){
Write-Host "1 -ne 2"
}
Read-Host
実行結果
1 -ne 2
-lt(less than)
-lt(less than)の使用例です。
ソースコード
$a = 2
$b = 1
if($a -lt 2){
Write-Host "2 -lt 2"
}
if($b -lt 2){
Write-Host "1 -lt 2"
}
Read-Host
実行結果
1 -lt 2
-le(less than or equal)
-le(less than or equal)の使用例です。
ソースコード
$a = 2
$b = 1
if($a -le 2){
Write-Host "2 -le 2"
}
if($b -le 2){
Write-Host "1 -le 2"
}
Read-Host
実行結果
2 -le 2
1 -le 2
-gt(greater than)
-gt(greater than)の使用例です。
ソースコード
$a = 2
$b = 1
if($a -gt 1){
Write-Host "2 -gt 1"
}
if($b -gt 1){
Write-Host "1 -gt 1"
}
Read-Host
実行結果
2 -gt 1
-ge(greater than or equal)
-ge(greater than or equal)の使用例です。
ソースコード
$a = 2
$b = 1
if($a -ge 1){
Write-Host "2 -ge 1"
}
if($b -ge 1){
Write-Host "1 -ge 1"
}
Read-Host
実行結果
2 -ge 1
1 -ge 1
補足
大なり(>)、小なり(<)を使うとどうなるか?
Javaのような他言語みたいに、大なり(>)、小なり(<)を使用するとどうなるでしょうか。
$a = 2
$b = 1
if($a > 1){
Write-Host "2 > 1"
}
if($b > 1){
Write-Host "1 > 1"
}
Read-Host
実行すると、Shell上は何も出力されず、「1」という謎ファイルができました。
大なり(>)はPowerShellではリダイレクトの意味なので、比較に使うと予期せぬ動作になるので注意が必要です。
ちなみに小なり(<)は構文エラーでした。。
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | PowerShell | 5.1 |
ちなみに私もこんな記事を書くということは、時々こんがらがっているということです。。
以上です。