PowerShellの比較演算子と論理演算子

[目次]

  • 比較演算子一覧
  • 比較演算子の使用例
  • 論理演算子一覧
  • 論理演算子の使用例

比較演算子一覧

演算子説明
-eq等しい
-ne 等しくない
-gt より大きい
-lt より小さい
-ge 以上
-le 以下
-likeワイルドカードを使用した値と等しい
-notlikeワイルドカードを使用し値と等しくない
-match正規表現と等しい
-notmatch正規表現と等しくない

また、大文字小文字を区別したい場合は、演算子の頭に「c」を付けます

演算子説明
-ceq 等しい(大文字小文字を区別)
-cne等しくない(大文字小文字を区別)
-clikeワイルドカードと等しい(大文字小文字を区別)
-cnotlikeワイルドカードと等しくない(大文字小文字を区別)
-cmatch正規表現と等しい(大文字小文字を区別)
-cnotmatch正規表現と等しくない(大文字小文字を区別)

比較演算子の使用例

> "A" -eq "A"
True

> "A" -eq "B"
False

> "A" -ne "A"
False

> 1 -gt 2
False

> 1 -lt 2
True

> 1 -ge 2
False

> 1 -le 2
True

> 1 -ge 1
True

> 1 -le 1
True

> 1 -like 1
True

> "abc" -like "*b*"
True

> "abc" -like "*X*"
False

> "abc" -notlike "*b*"
False

> "abc" -notlike "*X*"
True

> "abc" -match "^a"
True

>"abc" -match "^b"
False

> "abc" -notmatch "^a"
False

> "abc" -notmatch "^b"
True

> "ABC" -like "*b*"
True

> "ABC" -clike "*b*"
False

> "ABC" -cnotlike "*b*"
True

> "ABC" -cnotlike "*B*"
False

> "abc" -match "^A"
True

> "abc" -cmatch "^A"
False

> "abc" -cnotmatch "^A"
True

> "abc" -cnotmatch "^a"
False

PowerShellはこんな感じでサクッと真偽をチェックできるから楽しいですよね。

実際のコマンドの中では以下のように使用できます。

> Get-ChildItem -Path "C:\work" -Recurse | Where-Object { $_.FullName -like "*test*"} | Select-Object FullName

FullName
--------
C:\work\test
C:\work\Script\TestScript.ps1
C:\work\test\A
C:\work\test\memo_abc.txt
C:\work\test\memo_def.txt
C:\work\test\A\秘密のmemo_abc.txt
C:\work\test\A\秘密のmemo_def.txt

これは、FullName(フルパス)に「test」という文字列が含まれるものだけを取得するコマンドレットの例になります。

論理演算子一覧

演算子内容
-and論理積
-or論理和
-xor排他的論理和
-not否定

プログラミング言語の中ではちょっと珍しい形式ですけど、一度覚えてしまえば忘れづらい形式ですよね。

論理演算子の使用例

> ("A" -eq "A") -And ("B" -eq "B")
True

> ("A" -eq "A") -Or ("A" -eq "B")
True

> ("A" -eq "A") -Xor ("B" -eq "B")
False

> ("A" -eq "B") -Xor ("B" -eq "B")
True

> ("A" -eq "A") -Xor ("A" -eq "B")
True

> -not("A" -eq "A")
False

> !("A" -eq "A")
False