バッチファイルでは、繰り返し処理を行うための記述として、whileループやdo-whileループについて直接用意されてはいません。しかし、if文とgoto文を使って、これらのループ構造を作ることは可能です。
この記事では、バッチファイルでwhileループやdo-whileループのような処理を実装する方法を紹介します。
while ループの実装
whileループは、条件が真である間、コードブロックを繰り返し実行します。最初にループに到達した際、ループの条件を満たさない場合は、ループ内の処理は一度も行われません。
バッチファイルでこのようなループを実現するには、if文とgoto文を組み合わせます。
@echo off
set /a counter=0
:whileLoop
if %counter% LSS 5 (
echo %counter%
set /a counter=%counter%+1
goto whileLoop
)
pause
実行結果
0
1
2
3
4
続行するには何かキーを押してください . . .
do-while ループの実装
do-while ループは、条件が真である間、コードブロックを繰り返しす点ではwhileループと同じですが、最低1回はループ内の処理が行われる点がwhileループと異なります。
こちらも、if文とgoto文の組み合わせで実現できます。
@echo off
set /a counter=0
:doWhileLoop
echo %counter%
set /a counter=%counter%+1
if %counter% LSS 5 goto doWhileLoop
pause
実行結果
0
1
2
3
4
続行するには何かキーを押してください . . .
まとめ
本記事では、バッチファイルにおけるwhileループやdo-whileループの作り方を紹介しました。ループを使用する際には無限ループに陥らないように注意し、条件が適切に更新・判定されていることを確認してください。