Powershellのif文の書き方を解説していきます。
※このページに掲載されいているプログラムは、
PowerShellのバージョン:5.1.19041.3693 にて動作確認済みです。
ifの構文
1 2 3 |
if(条件){ 処理 } |
ifのカッコ内にある条件が満たす($trueになる)と、{}内の処理が行われます。
else や elseifを用いると、様々な条件分岐が可能です。
elseif、elseの構文
1 2 3 4 5 6 7 |
if(条件1){ 処理1 }elseif(条件2){ 処理2 }else{ 処理3 } |
メモ
- ifはIfと頭文字を大文字にしても同様の処理がされます。
- elseとifは空白を入れず、詰めてください。
- 1番最初に条件1が判定され、条件を満たすと処理1が動作して終了します。
- 条件1が処理されなかった場合、
条件2が判定され条件を満たすと処理2が動作して終了。 - 条件1も条件2も満たさない場合は、処理3が動作して終了します。
- elseif分は1つ以上記述可能、省略可能です。
- elseは1つの未記述でき、省略可能です。
比較演算子
比較演算子とは、左右の値を比較するときに使う演算子のことです。
Powershellで使用できる比較演算子は以下です。
Powershell | C/C++ | 説明 |
-eq | == | 等しい |
-ne | != | 等しくない |
-lt | < | より小さい、未満 |
-le | <= | 以下 |
-gt | > | より大きい |
-ge | >= | 以上 |
-like | なし | ワイルドカードでの比較で一致 |
-notlike | なし | ワイルドカードでの比較で一致しない |
-match | なし | 正規表現での比較で一致 |
-notmatch | なし | 正規表現での比較で一致しない |
Powershell特有のgeやltなどがわかりずらいです。
それぞれの英語の意味を理解することで覚えやすいと思いますので、
以下を参考にしてみてください。
コマンドの意味
eq:equal
ne:not equal
lt:less than
le:less than or equal
gt:greater than
ge:greater than or equal
比較演算子の使用例
テストの点数を入力して、点数に応じた評価を表示する例です。
1 2 3 4 5 6 7 8 9 10 |
# C:\Sample1.ps1 [int]$point = Read-Host "テストの点数を入力してください" if($point -le 30){ Write-Host "残念です" }elseif($point -gt 79){ Write-Host "素晴らしいです" }else{ Write-Host "平均的です" } |
実行結果
1 2 3 4 5 6 7 8 9 |
PS C:> ./Sample1.ps1 テストの点数を入力してください:90 素晴らしいです PS C:> ./Sample1.ps1 テストの点数を入力してください:60 平均的です PS C:> ./Sample1.ps1 テストの点数を入力してください:20 残念です |
like、matchの使用例
入力したテキストに日本が文頭や文末に存在するかをチェックする例です。
1 2 3 4 5 6 7 8 9 10 11 12 |
# C:\Sample2.ps1 $text = Read-Host "文字を入力してください" #テキストの最後に日本があればヒットする(後ろにワイルドカード) if($text -like "*日本"){ Write-Host "日本で終わっています(like)" } #テキストの最初に日本があればヒットする(^は先頭を意味する正規表現) if($text -match "^日本"){ Write-Host "日本から始まっています(match)" } |
実行結果
1 2 3 4 5 6 |
PS C:> ./Sample2.ps1 文字を入力してください: 日本人 日本から始まっています(match) PS C:> ./Sample2.ps1 文字を入力してください: 私たちの日本 日本で終わっています(like) |
論理演算子
論理演算子とはTrue/Falseのような真偽値や2つ以上の条件式を組み合わせ、その真偽を判定するための演算子です。
また、ブール演算子と呼ばれます。
以下に、論理演算子の一覧をまとめています。
Powershell | C/C++ | 説明 |
-and | && | 全ての条件を満たすとOK(論理積) |
-or | || | どちらかの条件を満たすとOK(論理和) |
-xor | ^ | どちらかを満たすとOK、それ以外はNG(排他的論理和) |
-not | ! | 条件を逆転させる(否定) |
論理演算子を利用した条件分岐の使用例
国語と算数のテストの点数を入力して、評価を表示する例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# C:\Sample3.ps1 [int]$point1 = Read-Host "国語のテストの点数を入力してください" [int]$point2 = Read-Host "算数のテストの点数を入力してください" if($point1 -ge 80 -and $point2 -ge 80){ Write-Host "合格です" }elseif($point1 -lt 79 -and $point2 -ge 80){ Write-Host "国語を勉強しましょう" }elseif($point1 -ge 80 -and $point2 -lt 79){ Write-Host "算数を勉強しましょう" }else{ Write-Host "両方勉強しましょう" } |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 |
PS C:> ./Sample3.ps1 国語のテストの点数を入力してください: 80 算数のテストの点数を入力してください: 80 合格です PS C:> ./Sample3.ps1 国語のテストの点数を入力してください: 90 算数のテストの点数を入力してください: 70 算数を勉強しましょう PS C:> ./Sample3.ps1 国語のテストの点数を入力してください: 70 算数のテストの点数を入力してください: 60 両方勉強しましょう |
まとめ
if文はどのプログラムでも使用する構文なので、
使い方をマスターすれば他のプログラミング言語にも対応できます。
何度も使って慣れていきましょう。
プログラミング知識を身に着けたい人におすすめの無料スクールはこちら。