[PowerShell Core 入門] if 文と比較演算子

PowerShell Core PowerShell Core
PowerShell Core

前回の記事でも少し触れましたが、条件によって実行する処理を分岐させるには if 文を使用します。

今回は、より詳細に PowerShell Core における if 文の使用方法について説明をします。

if 文の基礎

if 文は条件によって処理を分岐させるためのもので、書式は以下の通りです。

if (条件式1) {
  条件式1が満たされた場合に実行する処理
} elseif (条件式2) {
  条件式2が満たされた場合に実行する処理
} else {
  全ての条件式が満たされない場合に実行する処理
}

if 文 の一番短い書式は if (条件式) {} です。elseif や else は 省略することができます

また、elseif はいくつ書いても構いません。

if 文の条件式について

if 文の条件式は、その式が成り立つ場合(つまり TRUE)の場合に {} の中を実行します。

例えば、変数 x の値が 3 より大きい場合に、「Large」と表示したい場合は、以下のように書きます。

$x = 5
if ($x -gt 3) { 
  Write-Host "Large" 
}

なお、PowerShell Core における真は「$true」、偽は「$false」で表します。

比較演算子

PowerShell で使用可能な比較演算子を以下に示します。

PowerShell C# 説明
-eq == 等しい
-ne != 等しくない
-gt > より大きい
-ge >= 以上
-lt < より小さい
-le <= 以下
-like なし ワイルドカードと等しい
-notlike なし ワイルドカードと等しくない
-match なし 正規表現と等しい
-notmatch なし 正規表現と等しくない
-contains なし 指定した値が含まれる
-notcontains なし 指定した値が含まれない

if文 と 比較演算子の例

-eq

if ( 10 -eq 10 ) {
  Write-Host "10 と 10 は等しい"
}

-ne

if ( 10 -ne 11 ) {
  Write-Host "10 と 11 は等しくない"
}

-gt

if ( 5 -gt 3 ) {
  Write-Host "5 は 3 より大きい"
}

-ge

if ( 5 -ge 5 ) {
  Write-Host "5 は 5 以上"
}

-lt

if ( 9 -lt 10 ) {
  Write-Host "9 は 10 未満"
}

-le

if ( 10 -le 10 ) {
  Write-Host "10 は 10 以下"
}

-like

if ( "powershell" -like "power*" ) {
  Write-Host "power* は powershell と一致"
}

-notlike

if ( "powershell" -notlike "power sh*" ) {
  Write-Host "power sh* は powershell と一致しない"
}

-match

if ( "powershell" -match "(ow)" ) {
  Write-Host "マッチする"
}

-notmatch

if ( "csharp" -notmatch "(ow)" ) {
  Write-Host "マッチしない"
}

-contains

if ( ("ruby", "powershell", "python") -contains "powershell" ) {
  Write-Host "powershell は配列に含まれる"
}

-notcontains

if ( ("ruby", "powershell", "python") -notcontains "csharp" ) {
  Write-Host "csharp は配列に含まれない
}

まとめ

if 文の使用方法は、C# や Java, C言語に近く、比較演算子は、Linux 系 OS のシェルと同様ですので、経験がある場合は比較的覚えやすいのではないでしょうか。

そのほかにも、-like, -match, -contains など特殊な演算子もありますので、用途に応じて使い分けてください。

コメント

  1. […] 前回の記事では if 文を取り上げました。 […]

  2. […] 論理演算子とは、式と式を結んで評価するための演算子で、if 文 や while 文の条件式などの条件式と一緒に使用します。 […]

  3. […] while 文の条件式で使用できる演算子は、if 文と同様です。 […]

  4. […] if 文 の場合は {} の中に複数行書くことが多いのですが、参考演算子の場合は「:」の左右に実行する式を書くために、シンプルに結果を得る場合に使用します。 […]

タイトルとURLをコピーしました