バッチファイルで特有のコマンドとして、指定したラベルの位置に移動することのできるGOTOコマンドがあります。本記事では、このGOTOコマンドの使い方について紹介します。
GOTOコマンドを利用すると、指定した飛びたい位置のラベルに飛ぶことができます。
goto [ラベル名]
ラベルは以下のように「:」を頭に付けることで作成することができます。
:[ラベル名]
(処理内容)
以下に例を見ていきましょう。以下のバッチの中にはLabelAとLabelBの二つのラベルがあります。バッチファイルが起動すると、4行目で「goto LabelB」が実行されて9行目の:LabelBの位置に飛ぶことになります。
@echo off
echo Start
goto LabelB
:LabelA
echo LabelA
:LabelB
echo LabelB
echo Finish
pause
実行結果は下記の通りです。LabelAが飛ばされていることがわかります。
以下のように4行目のgoto LabelBをgoto LabelAに変更するとどうなるでしょうか。
@echo off
echo Start
goto LabelA
:LabelA
echo LabelA
:LabelB
echo LabelB
echo Finish
pause
LabelAの位置に移動した後は、その位置から下に順次コードが実行されます。すなわち、LabelAに飛んだ場合は、その下にあるLabelBも実行される点には注意が必要です。
GOTOコマンドを利用する一つの実例として、処理の途中でIF文などの判定結果に基づいてバッチファイルを終了させることができます。
バッチファイル内に記述することなく、デフォルトで使えるラベルとして「:EOF」が定義されています。:EOFはバッチファイルの最後を表しており、「:EOF」に到達するとバッチファイルが終了します。よって「goto :EOF」と記述すればバッチファイルは強制的に終了します。
つまり、以下のように記述すれば4行目でバッチファイルが強制終了します。
@echo off
echo Start
goto :EOF
echo Finish
pause