PowerShellコマンドレット虎の巻
HOME > PowerShell構文 > while構文

while構文

while構文は、特定の条件が満たされている間、繰り返し処理を行いたい時に使用します。

解説

while文は、特定の条件が真である間、コードブロックを繰り返し実行するためのループ構文です。

構文

(while構文)
while (<条件>) { <繰り返し実行するコード> }

※while文の各部分の詳細は以下です。

<条件>
各反復の前に評価される式。
この条件がTrueである間ループ処理を継続します。

PowerShellでは、条件式に使用する比較演算子は一般的な記号(<、= など)は使用できません。
以下の表の比較演算子をご使用ください。

【比較演算子】
比較演算子記号説明
-eq=等しい
-ne<>等しくない
-lt<より小さい(未満)
-le<=以下
-gt>より大きい
-ge>=以上

サンプル

変数countが3より小さい間実行する

$count = 0 while ($count -lt 3) { Write-Host "Count is $count" $count++ }

(結果)

Count is 0 Count is 1 Count is 2

無限ループを行う

while ($true) { Write-Host "無限ループ中です。停めたい場合は[Ctrl]+[C]を押してください。" Start-Sleep -Seconds 1 }

[Ctrl]+[C]を押すまで1秒ごとにメッセージを表示します。

ファイルの存在を監視する

$filePath = "C:\Sample\test.txt" while (Test-Path $filePath) { Write-Host "ファイルが存在します。" Start-Sleep -Seconds 5 } Write-Host "ファイルが無くなりました。"

ファイル「C:\Sample\test.txt」が存在する間ループ処理を行います。

備考

  • 大文字小文字は区別しないので、while、While、WHILEどのパターンで書いても問題ありません。
  • 条件に合致しなくても最低1回はループ処理を行いたい場合は、do-while構文をご使用ください。

関連項目

  • PowerShell構文
  • if構文:条件分岐を行う
  • for構文:ループ処理を行う
  • foreach構文:コレクションの各要素に対して処理を行う
  • switch構文:特定の式の値に基づいて多分岐を行う
  • while構文:特定の条件が満たされている間、繰り返し処理を行う
  • do-while構文:少なくとも一度はループ内の処理を実行することを保証する