複数の実行モジュールで構成されるシステムがあり、その起動用バッチファイルを作成していて、INIファイルに記述されている設定をバッチファイルで取得したくて、作ってみた。
実際のJOBでは、読み出したデータを環境変数にセットしたりしたが、下の例は読み出したデータを出力するもの。出力する部分を変えれば、環境変数にセットするなどは簡単にできると思う。
実際のJOBでは、読み出したデータを環境変数にセットしたりしたが、下の例は読み出したデータを出力するもの。出力する部分を変えれば、環境変数にセットするなどは簡単にできると思う。
@echo off
:GET-INI
REM *******************************************************
REM INIファイルから項目を読み取り返す
REM %1: セクション名
REM %2: キー名
REM %3: デフォルト値
REM %4: INIファイル名
REM *******************************************************
setlocal enabledelayedexpansion
REM -------------------------------------------------------
REM 指定されたファイルが存在しないなら
REM 項目が見つからなかったものとして処理する
REM -------------------------------------------------------
if "%4"=="" goto __GET-INI__NOT_FOUND
if not exist %4 goto __GET-INI__NOT_FOUND
REM -------------------------------------------------------
REM ファイルを1行ずつ読み出して、検索
REM -------------------------------------------------------
set SN=
for /f "usebackq eol=; delims== tokens=1,2" %%a in (%4) do (
set V=%%a&set P=!V:~0,1!!V:~-1,1!&set S=!V:~1,-1!
if "!P!"=="[]" set SN=!S!
if "!SN!"=="%~1" if "!V!"=="%~2" (
echo %%b
goto __GET-INI__EXIT
)
)
REM -------------------------------------------------------
REM 項目が見つからない場合はデフォルト値を表示
REM -------------------------------------------------------
:__GET-INI__NOT_FOUND
if "%~3"=="" (echo/) else (echo %~3)
REM -------------------------------------------------------
REM 終了
REM -------------------------------------------------------
:__GET-INI__EXIT
endlocal
exit /B 0
| ホーム |
SHOJI's Code



