こんにちは、
この記事では、WindowsバッチファイルでINIファイルを読み込む方法について解説します。
バッチファイルを使って設定ファイルを読み込むことで、日々の業務をもっと楽に、効率的に進めるためのヒントをお伝えします。
バッチファイルとは?
バッチファイル(.batまたは.cmd)は、一連のコマンドを順番に実行するためのテキストファイルです。
Windowsで特定の作業を自動化するために非常に便利なツールです。
INIファイルとは?
INIファイルは、設定情報を保存するためのテキストファイルです。
一般的に、セクション([SectionName])とキー=値(key=value)の形式で設定が記述されます。
以下は例です:
[Settings]
username=user1
password=pass123
バッチファイルでINIファイルを読み込む方法
バッチファイルでINIファイルの内容を読み込むには、for
ループとfindstr
コマンドを使います。
以下に基本的な方法を示します。
INIファイルの読み込み例
まず、設定ファイル「config.ini」を作成します。
[Settings]
username=user1
password=pass123
次に、バッチファイル「read_ini.bat」を作成します。
@echo off
setlocal enabledelayedexpansion
set inifile=config.ini
set section=Settings
for /f "tokens=1,2 delims==" %%A in ('findstr /i "username" %inifile%') do (
set username=%%B
)
for /f "tokens=1,2 delims==" %%A in ('findstr /i "password" %inifile%') do (
set password=%%B
)
echo Username: %username%
echo Password: %password%
pause
このバッチファイルを実行すると、「config.ini」ファイルから「username」と「password」を読み取り、それぞれの値を表示します。
セクションとキーの指定
上記の例では、特定のセクションを考慮せずにキーを検索しています。
セクションを考慮した検索を行うには、少し工夫が必要です。
@echo off
setlocal enabledelayedexpansion
set inifile=config.ini
set section=Settings
set inSection=0
for /f "tokens=1* delims= " %%A in ('type %inifile%') do (
if "%%A"=="[%section%]" (
set inSection=1
) else (
if "%%A"=="[%%A]" (
set inSection=0
)
if !inSection! equ 1 (
for /f "tokens=1,2 delims==" %%B in ("%%A") do (
if "%%B"=="username" set username=%%C
if "%%B"=="password" set password=%%C
)
)
)
)
echo Username: %username%
echo Password: %password%
pause
このバッチファイルでは、指定されたセクション内のキー「username」と「password」を検索して値を読み取ります。
実際の業務での活用例
INIファイルを読み込むバッチファイルは、設定情報を外部ファイルから動的に取得する場合に非常に便利です。
例えば、複数の環境に対して異なる設定を適用する際に役立ちます。
設定ファイル「config.ini」
[Development]
username=devuser
password=devpass
[Production]
username=produser
password=prodpass
バッチファイル「read_ini.bat」
@echo off
setlocal enabledelayedexpansion
set inifile=config.ini
set section=Development
set inSection=0
for /f "tokens=1* delims= " %%A in ('type %inifile%') do (
if "%%A"=="[%section%]" (
set inSection=1
) else (
if "%%A"=="[%%A]" (
set inSection=0
)
if !inSection! equ 1 (
for /f "tokens=1,2 delims==" %%B in ("%%A") do (
if "%%B"=="username" set username=%%C
if "%%B"=="password" set password=%%C
)
)
)
)
echo Environment: %section%
echo Username: %username%
echo Password: %password%
pause
上記のバッチファイルではINIファイルのDevelopmentセクションの情報を取得しています。
まとめ
Windowsバッチファイルを使ってINIファイルの設定を読み込むことで、設定の管理と適用が非常に簡単になります。
基本的なコマンドを理解し、業務の効率化に役立ててください!
免責規定
この記事で提供される情報は、一般的なガイダンスを目的としており、すべての環境やシステムでの動作を保証するものではありません。
OSのバージョンやリリースによっては、記載されているコマンドが実行できない、または異なる結果をもたらす可能性があります。
また、会社内のパソコンなどでは、ポリシーや権限によって実行できない場合があります。
実行には管理者権限が必要な場合が多いため、注意が必要です。
この記事の情報を使用することによって生じる問題や結果について、筆者およびサイト管理者は責任を負いません。
すべての操作は自己責任で行ってください。
最後までお読みいただきありがとうございました。
またお会いしましょう!
コメント