PowerShell if文のサンプル

目次

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になります。

関連の記事

PowerShell ISEでファイルからHello Worldを表示

△上に戻る