久しぶりに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>