今回はWindowsでバッチファイル(batファイル)を作成する場合のテンプレートを公開します。
テンプレートのコード
@ECHO OFF
REM **********************************************
REM 処理内容:○○を処理するバッチ
REM 作成日:2021/03/01
REM 作成者:marock.tokyo
REM 更新日:2021/03/02
REM 更新者:marock.tokyo
REM 更新内容:□□処理を追加
REM **********************************************
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
REM ローカル変数定義
REM 環境変数の定義
SET INIFILE_PATH=TEST.ini
REM メイン処理
:MAIN
REM ファイルがあるフォルダに移動
PUSHD %~DP0
REM 初期処理
CALL :INIT
IF %ERRORLEVEL% NEQ 0 GOTO:FINAL
REM メイン処理
ECHO INI_SERVER=%SERVER%
ECHO INI_USER=%USER%
GOTO :FINAL
REM **********************************************
REM サブルーチン定義
REM **********************************************
REM 初期処理
:INIT
REM 引数の取得 複数ある場合は%1, %2 と数字を増やす
SET ARG1=%1
REM 初期設定ファイル
FOR %%I IN (%INIFILE_PATH%) DO (
CALL :READ_INIFILE %%I
IF !ERRORLEVEL! NEQ 0 EXIT /B
)
EXIT /B
REM INIファイル読み込み処理
:READ_INIFILE
IF EXIST %1 (
FOR /F "TOKENS=1,2* DELIMS==" %%I IN (%1) DO (
IF NOT %%I == # (
SET %%I=%%J
)
)
) ELSE (
ECHO INIファイルが存在しません。
EXIT /B 2
)
EXIT /B
REM 終了処理
:FINAL
POPD
ENDLOCAL
ECHO 終了
EXIT /B
解説
35行目の初期処理(:INITラベル)では引数の取得と設定ファイル(INIファイル)の取得を行っています。設定ファイルは14行目で設定します。設定ファイルには「変数名=設定値」の形式で複数指定可能です。設定ファイルのサンプル例です。
; SERVERの設定 SERVER=marock.tokyo ; USERの設定 USER=marock01
複数の設定ファイルを読み込む必要がある場合はスペースを空けて複数指定することができます。
例)SET INIFILE_PATH=TEST.ini TEST2.ini
逆に、設定ファイルを使用しない場合は何も指定しません。
例)SET INIFILE_PATH=
メイン処理は26行目以降に記載してください。テンプレートのコードはサンプルで設定ファイルで設定された値を出力しているだけです。

コメント