スポンサーリンク

バッチファイルのテンプレート公開

スポンサーリンク

今回は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行目以降に記載してください。テンプレートのコードはサンプルで設定ファイルで設定された値を出力しているだけです。

コメント