【意外によく使う】バッチから外部ファイル(txtやini)を読み込んで値を取得する方法

Python

バッチファイルから外部の設定ファイル(txtやini)を読み込んで値を取得する方法は、システム管理や自動化スクリプトでよく使われます。この記事では、具体例を交えながらその手順を解説します。

スポンサーリンク

設定ファイルの準備

まず、以下のような設定ファイル settings.ini を用意します。

path1=\\server001\test\filename1=template1.xlsx path2=\\server002\test\ filename2=template2.xlsx

バッチファイルの記述

次に、バッチファイルでこの設定ファイルを読み込み、値を取得するような流れを作ります。

delims=のところで区切り文字を”=”に指定していて、「区切り文字”=”としたときの1列目が”path1″である行の2列目の値を変数path1にセットする」というやり方です。

一般的にはdelimsはカンマ等が多いと思いますが、ここでは上記のiniファイルで=を使っているため=としています。

set exist_flg=0
for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "path1"=="%%a" set path1=%%b)
for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "filename1"=="%%a" set filename2=%%b)
for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "path2"=="%%a" set path2=%%b)
for /f "delims==, tokens=1,2" %%a in (%~dp0settings.ini) do (if "filename2"=="%%a" set filename2=%%b)
rem ファイル存在確認
if exist %path1%%filename1% (
echo OK
) else (
echo NG
set exist_flg=1
)
if exist %path2%%filename2% (
echo OK
) else (
echo NG
set exist_flg=1
)
if %exist_flg% equ 1 (
echo 不足ファイルがあるため処理を中断
pause
exit
)
rem Pythonスクリプトなどに値を渡す
cd /d %~dp0
d:\WPy64-31050\scripts\python D:\test.py %path1%%filename1% %path2%%filename2%
タイトルとURLをコピーしました