PowerShellにおける条件分岐では「if,elseif,else」を使います。「else if」や「elif」ではありません。
if (条件) { 実行処理 } elseif (条件) { 実行処理 } else { 実行処理 }
一行で記述する場合にも、ifやelseの後に「{ }」を記述する必要があります。
if($val -eq 1){ return 1 }
PowerShellのswitch文は以下の特徴があります。
switch ($var) { 1 {"a"} 2 {"b"} default {"default"} }
switch文で大文字と小文字を区別するには「-case」オプションを使用します
switch -case ($var)
ワイルドカードによるパターン一致で評価するには「-wildcard」オプションを使用します。
switch -wildcard ($var){ "t*" {"tで始まる文字列です"} }
正規表現によるパターン一致で評価するには「-regex」オプションを使用します。
switch -regex ($var){ "(^#)" {"コメントに対する処理"} }
for文は「初期値,継続条件,加算値」を記述します。
for ($i = 0; $i -lt 5; $i++) { 実行処理 }
配列やハッシュのような要素をひとつずつ取り出すための繰り返し処理です。
「each」ではなく「foreach」です。
foreach ($item in $items) { 実行処理 }
条件を満たされている限り(trueである限り)処理を繰り返します。
while (条件) { 実行処理 }
処理を一度実行した上で、条件を満たされている限り(trueである限り)処理を繰り返します。
do { 実行処理 } while (条件)
処理を一度実行した上で、条件が満たされるまで(trueになるまで)、処理を繰り返します。
do { 実行処理 } until (条件)
「break」が実行されると、コードブロックを終了して、後続処理へ移動します。
$items = @(5,3,1,7,3,8,0,3,1) # 要素に0があるまで表示する。 foreach($item in $items){ if($item -eq 0){ break } Write-Host $item }
「continue」が実行されると、実行フローはループの先頭へ移動し、次の加算値で反復処理を行います。
# 偶数を出力する for($i = 0; $i -lt 10; $i++){ if($i % 2){ continue } Write-Host $i }