コマンドプロンプトで関数を定義する・バッチ処理に引数(パラメータ)を指定する

久しぶりにbatファイルで作業をする機会があったので、メモとして記載します。

コマンドプロンプトで関数を定義するバッチスクリプト

@echo off
setlocal

echo Start ERRORLEVEL : %ERRORLEVEL%
Call :sampleFunc %1
echo End   ERRORLEVEL : %ERRORLEVEL%

endlocal
exit /b

:sampleFunc
echo Sample Fucntion Call %1
exit /b 777

関数は11行目以降です。”:”(コロン)の後に関数名を定義します。echo で”Sample Fucntion Call”+引数 を出力して、終了コード”777″で関数の処理を終了します。

5行目の、”Call :関数名 %1″で関数を呼び出します。”%1″はこのバッチスクリプトの1つ目の引数に指定された値が設定されます。

関数以外のバッチスクリプト自体は、以下の流れとなります。

  • ERRORLEVELの出力
  • 関数”sampleFunc”に”%1″を渡して呼び出し
  • ERRORLEVELの出力

実行結果

上記のバッチスクリプトを”func.exe”で保存した場合の実行例です。

“param1″と”123″を指定して2回実行しています。”echo %ERRORLEVEL%”で、バッチスクリプトの終了コードを表示します。

C:\Dev>func.bat param1
Start ERRORLEVEL : 0
Sample Fucntion Call param1
End   ERRORLEVEL : 777

C:\Dev>echo %ERRORLEVEL%
777

C:\Dev>func.bat 123
Start ERRORLEVEL : 0
Sample Fucntion Call 123
End   ERRORLEVEL : 777

C:\Dev>echo %ERRORLEVEL%
777

C:\Dev>