PowerShell if文のサンプル

PowerShellのif文のサンプルです。条件で処理を分岐する時に使用します。

目次

if文 if文とは / if文のサンプル / ネスト構造 if文の中にif文
  nullと空文字を比較 / 比較演算子
論理演算子 論理積(-and) AかつB / 論理和(-or) AまたはB / 否定(-not) Aではない

if文とは

if (条件){
  処理
}
// elseifとelseを書く場合 
if (条件){
  処理
}elseif (条件){
  処理
}else{
  処理
}
  • 条件が合致する場合、配下のブロック{ }の処理が実行され、if文の処理は終了します。
  • 条件が合致することをtrue(真)ともいいます。
  • 条件が合致しないことをfalse(偽)ともいいます。
  • 条件が合致しない場合、配下のブロック{ }の処理は実行されず、その下(else if/else/処理終了)に進みます。
  • else ifは、1つ以上記述できます。省略可能です。
  • elseのブロック{ }の処理は、どの条件も合致しなかったときに実行されます。elseは1つのみ記述できます。省略可能です。

if文のサンプル

$a = 1

if ($a -eq 0) { 
	Write-Host "0"
}elseif ($a -eq 1) {
	Write-Host "1"  # 1が表示される
}else{
	Write-Host "other"
}

5行目のif文はtrueになるのでその配下の処理が実行されます。

ネスト構造 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 -ne b aとbの値は等しくない。not equal(!=)
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になります。

関連の記事

PowerShell ISE ファイルでHello World

△上に戻る