前回の記事でも少し触れましたが、条件によって実行する処理を分岐させるには 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 など特殊な演算子もありますので、用途に応じて使い分けてください。
コメント
[…] 前回の記事では if 文を取り上げました。 […]
[…] 論理演算子とは、式と式を結んで評価するための演算子で、if 文 や while 文の条件式などの条件式と一緒に使用します。 […]
[…] while 文の条件式で使用できる演算子は、if 文と同様です。 […]
[…] if 文 の場合は {} の中に複数行書くことが多いのですが、参考演算子の場合は「:」の左右に実行する式を書くために、シンプルに結果を得る場合に使用します。 […]