前回の記事でも少し触れましたが、条件によって実行する処理を分岐させるには 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 文 の場合は {} の中に複数行書くことが多いのですが、参考演算子の場合は「:」の左右に実行する式を書くために、シンプルに結果を得る場合に使用します。 […]