SHOJI's Code
 仕事や趣味で書いた各種言語のプログラミングコード(エクセルVBA,PHP,C/C++/C#,JavaScript等)、その他雑記。
2017.10<<123456789101112131415161718192021222324252627282930>>2017.12
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

複数の実行モジュールで構成されるシステムがあり、その起動用バッチファイルを作成していて、INIファイルに記述されている設定をバッチファイルで取得したくて、作ってみた。

実際の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


テーマ:Windows 全般 - ジャンル:コンピュータ
コメント
この記事へのコメント
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2010/07/03(土) 10:22:55 | | #[ 編集]
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2006 SHOJI, Powered By FC2ブログ all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。