Windowsバッチファイル

バッチファイルのサブルーチンと関数【call・goto・ラベルの作り方】

Windowsバッチファイル
記事内に広告が含まれています。

バッチファイルでコードを再利用するためのサブルーチン(関数)の作り方を解説します。call・goto・ラベルを組み合わせます。

ラベルとgotoの基本

@echo off
goto :main

:main
echo メイン処理開始
call :greet Taro
call :greet Hanako
echo メイン処理終了
exit /b 0

:greet
echo こんにちは、%1さん!
exit /b 0

callでサブルーチンを呼ぶ

書き方意味
call :ラベル名同じバッチ内のサブルーチンを呼ぶ
call :ラベル名 引数1 引数2引数を渡してサブルーチンを呼ぶ
call 別のバッチ.bat別のバッチファイルを呼び出す
exit /b 0サブルーチンから呼び出し元に戻る
exit /b 1エラーコード1で戻る

戻り値を返す方法

@echo off
setlocal

call :add 10 20
echo 計算結果: %RESULT%

pause
exit /b 0

:add
set /a RESULT=%1+%2
exit /b 0

setlocalとendlocalで変数をスコープ管理

@echo off
set GLOBAL=グローバル変数

call :myFunc
echo GLOBAL: %GLOBAL%
exit /b 0

:myFunc
setlocal
set LOCAL=ローカル変数
echo 関数内: %LOCAL%
endlocal
exit /b 0

まとめ

  • :ラベル名でサブルーチンを定義しcall :ラベル名で呼び出す
  • exit /bでサブルーチンから戻る(exitだとバッチ全体が終了するので注意)
  • 戻り値は変数経由で渡すのが一般的
  • setlocal/endlocalで変数のスコープを制限できる
  • 次の記事ではエラーハンドリングを学ぶ

コメント

タイトルとURLをコピーしました