この記事では、バッチファイルのgotoコマンドとラベルの使い方について紹介します。これらの機能を理解することで、より高機能なスクリプトを書くことができるようになります。
gotoコマンドとラベル
gotoコマンドは、バッチファイル内で指定したラベルに制御を移すために使用します。これにより、条件に基づいて異なるセクションにジャンプしたり、バッチファイル内の特定の部分を繰り返したりすることができます。
たとえば、以下のようにバッチファイルにgotoコマンド書くと、:label と書かれた行にジャンプします。
goto label
echo この行は実行されない
:label
上記の例において、コロン(:)からはじまる「:label」と書かれているのがラベルです。gotoのとび先には、このようなラベルを指定します。なお、ラベルはスクリプト内でユニークである必要があります。
サンプルコード
ユーザーが入力した数に応じて異なるメッセージを表示するバッチファイルのサンプルです。
@echo off
rem ユーザに有力を求める
echo Please enter a number (1-3):
set /p number=
rem 1~3が押された場合にgotoでジャンプ ★
if %number%==1 goto one
if %number%==2 goto two
if %number%==3 goto three
rem 1~3以外が押された場合はgotoコマンドが実行されず
rem この行に到達する。無効な番号であることを表示して終了。
echo Invalid number.
goto end
rem 1が押された場合
:one
echo You entered one.
goto end
rem 2が押された場合
:two
echo You entered two.
goto end
rem 3が押された場合
:three
echo You entered three.
rem 終了処理
:end
echo This is the end of the script.
pause
実行結果:1を押した後Enterキーを押した場合
You entered one.
This is the end of the script.
続行するには何かキーを押してください . . .
まとめ
本記事では、バッチファイルのgotoコマンドとラベルの使い方について紹介しました。gotoとラベルを使うことにより、バッチファイルの処理をグループごとに整理することができます。この仕組みを適切に使用して、読みやすいコードを心がけましょう。