目次
if文のみ (trueのとき処理する)
条件がtrueの時のみ処理します。falseでは処理しません。
if (条件){ 処理 } |
コード
$a = 3
if ($a -eq 3) {
Write-Host "ok1" # ok1が出力される (==))
}
if ($a -ne 1) {
Write-Host "ok2" # ok2が出力される (!=)
}
if ($a -gt 2) {
Write-Host "ok3" # ok3が出力される (>)
}
if ($a -ge 3) {
Write-Host "ok4" # ok4が出力される (>=)
}
if ($a -lt 5) {
Write-Host "ok5" # ok5が出力される (<)
}
if ($a -le 3) {
Write-Host "ok6" # ok6が出力される (<=)
}
- 条件が合致する場合、配下のブロック{ }の処理が実行され、if文の処理は終了します。
- 条件が合致することをtrue(真)ともいいます。
- 条件が合致しないことをfalse(偽)ともいいます。
ifとelse (trueとfalseそれぞれ処理する)
条件がtrueの時は、trueの処理をします。falseの時は、falseの処理をします。
if (条件){ 処理 }else{ 処理 } |
コード
$a = 2
if ($a -eq 3) {
Write-Host "test1"
}else{
Write-Host "test2" # test2が出力される
}
ifとelseifとelse (複数の条件で処理を分ける)
複数の条件で処理を分けたい場合に使用します。elseは条件にあてはまらない場合に処理されます。
if (条件){ 処理 }elseif (条件){ 処理 }else{ 処理 } |
コード
$a = 1
if ($a -eq 0) {
Write-Host "0"
}elseif ($a -eq 1) {
Write-Host "1" # 1が表示される
}else{
Write-Host "other"
}
5行目のif文はtrueになるのでその配下の処理が実行されます。
- 条件が合致しない場合、配下のブロック{ }の処理は実行されず、その下(else if/else/処理終了)に進みます。
- else ifは、1つ以上記述できます。省略可能です。
- elseのブロック{ }の処理は、どの条件も合致しなかったときに実行されます。elseは1つのみ記述できます。省略可能です。
if文の中にif文
$a = 1
$b = 1
if ($a -eq 1) {
if ($a -eq 1) {
Write-Host "1" # 1が表示される
}
}
5行目は、if文の中にif文を記述しています。ネストの構造です。入れ子ともいいます。
nullと空文字を比較
$str # nullになる
#$str = "" # 空文字
if($str -eq $null)
{
Write-Host("null") # nullが表示される
}
if([string]::IsNullOrEmpty($str)){
Write-Host("null or empty") # null or emptyが表示される
}
nullは、-eqで比較できます。
8行目は、値がnullまたは空文字のときにtrueになります。
比較演算子
2つの値を比べて条件を満たしていればtrue,そうでない場合はfalseを返します。
比較演算子 | 説明 |
---|---|
a -eq b | aとbの値は等しい equal(==) ※英字の大文字と小文字は区別しない |
a -ceq b | aとbの値は等しい ※英字の大文字と小文字を区別する |
a -ne b | aとbの値は等しくない not equal(!=) ※英字の大文字と小文字は区別しない |
a -cne b | aとbの値は等しくない ※英字の大文字と小文字を区別する |
a -gt b | aはbより大きい greater than(>) |
a -ge b | aはbより大きい または 等しい greater than or equal(>=) |
a -lt b | aはbより小さい less than(<) |
a -le b | aはbより小さい または 等しい less than or equal(<=) |
論理積(-and) AかつB
if (左の条件式) -and (右の条件式) |
- if文で論理積(-and)を使用する場合、論理積(-and)の左の式と右の式の両方が条件に合致する場合にtrueになります。
$a = 1
$b = 1
if (($a -eq 1) -and ($b -eq 1)){
Write-Host "true" # trueが表示される
}
4行目は、左の式と右の式が共にtrueなので、trueになります。
論理和(-or) AまたはB
if (左の条件式) -or (右の条件式) |
- if文で論理和(-or)を使用する場合、 論理和(-or)の左の式または右の式のどちらかが条件に合致する場合にtrueになります。
$a = 1
$b = 2
if (($a -eq 2) -or ($b -eq 2)){
Write-Host "true" # trueが表示される
}
4行目は、左の式はfalseですが右の式がtrueなのでtrueになります。
論理否定(-not) Aではない
if -not(条件式) |
- 条件式がfalseの場合にtrueになります。
- 条件式がtrueの場合にfalseになります。
$a = 9
if (-not($a -eq 1)){
Write-Host "true" # trueが表示される
}
if (-not($a -eq 9)){
Write-Host "true"
}else{
Write-Host "false" # falseが表示される
}
3行目は値の比較でfalseになり、それを否定するのでtrueになります。
7行目は値の比較でtrueになり、それを否定するのでfalseになります。
関連の記事