【bat】バッチファイルで goto コマンドを使って好きな位置まで移動する方法

バッチファイルの中で特定の位置にジャンプしたい場合、goto コマンドを使うと便利です。このブログでは、goto コマンドの基本的な使い方と実践的な例を紹介します。

goto コマンドの基本

goto コマンドは、指定されたラベルまでバッチファイルの実行をジャンプさせるために使います。ラベルはコロン(:)で始まる行で定義します。

goto ラベル名

実例:ユーザー選択に基づくジャンプ

以下の例では、ユーザーの入力に基づいて異なる処理を実行します。

@echo off
echo 1. Option 1
echo 2. Option 2
echo 3. Exit
set /p choice=Please enter your choice (1, 2, or 3): 

if %choice%==1 goto option1
if %choice%==2 goto option2
if %choice%==3 goto end

:option1
echo You selected Option 1.
goto end

:option2
echo You selected Option 2.
goto end

:end
echo Goodbye!
pause
  1. @echo off: コマンドプロンプトのエコーをオフにします。
  2. echo: ユーザーにメッセージを表示します。
  3. set /p: ユーザー入力を受け取り、choice 変数に格納します。
  4. if: 入力に基づいて適切なラベルにジャンプします。
  5. goto: 指定したラベルにジャンプします。

応用例:ループ処理

次の例では、カウンタを使ってループ処理を行います。

@echo off
setlocal enabledelayedexpansion

set /a count=0

:loop
set /a count+=1
echo Count is !count!

if !count! lss 10 goto loop

echo Done!
pause
  1. setlocal enabledelayedexpansion: 遅延環境変数展開を有効にします。
  2. set /a: 数値計算を行い、カウンタを初期化します。
  3. loop: ループの開始位置を示すラベルです。
  4. set /a count+=1: カウンタを1増やします。
  5. echo: カウンタの現在値を表示します。
  6. echo Done!: ループ終了後のメッセージを表示します。

まとめ

goto コマンドはバッチファイルの中で柔軟な制御を可能にします。基本的なジャンプから複雑なループ処理まで、goto を使いこなしてバッチファイルのスクリプト作成を効率化しましょう。