PowerShell制御構文
PowerShellの条件分岐処理
if文
PowerShellにおける条件分岐では「if,elseif,else」を使います。「else if」や「elif」ではありません。
if (条件) {
実行処理
} elseif (条件) {
実行処理
} else {
実行処理
}
一行で記述する場合にも、ifやelseの後に「{ }」を記述する必要があります。
if($val -eq 1){ return 1 }
switch文
PowerShellのswitch文は以下の特徴があります。
- switch文の条件判定では、一般的な「case」という記述を用いません。
- ラベルの後ろのは「{ }」を用いてスクリプトブロックで条件文を記述します。
- フォールスルーがありません。
- switch文は大文字と小文字を区別しません。
- switch条件に配列を指定すると配列要素すべてに対してswitch文が実行されます。
switch ($var)
{
1 {"a"}
2 {"b"}
default {"default"}
}
switch文で大文字と小文字を区別するには「-case」オプションを使用します
switch -case ($var)
ワイルドカードによるパターン一致で評価するには「-wildcard」オプションを使用します。
switch -wildcard ($var){
"t*" {"tで始まる文字列です"}
}
正規表現によるパターン一致で評価するには「-regex」オプションを使用します。
switch -regex ($var){
"(^#)" {"コメントに対する処理"}
}
PowerShellのループ処理
for文
for文は「初期値,継続条件,加算値」を記述します。
for ($i = 0; $i -lt 5; $i++) {
実行処理
}
foreach文
配列やハッシュのような要素をひとつずつ取り出すための繰り返し処理です。
「each」ではなく「foreach」です。
foreach ($item in $items) {
実行処理
}
while文
条件を満たされている限り(trueである限り)処理を繰り返します。
while (条件) {
実行処理
}
do while文
処理を一度実行した上で、条件を満たされている限り(trueである限り)処理を繰り返します。
do {
実行処理
} while (条件)
do until文
処理を一度実行した上で、条件が満たされるまで(trueになるまで)、処理を繰り返します。
do {
実行処理
} until (条件)
PowerShellのジャンプ処理
break
「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
「continue」が実行されると、実行フローはループの先頭へ移動し、次の加算値で反復処理を行います。
# 偶数を出力する
for($i = 0; $i -lt 10; $i++){
if($i % 2){ continue }
Write-Host $i
}
関連ページ
- Windows
- PowerShellスクリプトの作成と実行
- PowerShell変数
- PowerShell配列
- PowerShell連想配列(ハッシュ)
- PowerShell演算子
- PowerShell制御構文
- PowerShell関数
- PowerShell例外処理
- PowerShellファイル操作
- PowerShell設定ファイルの読み込み