Windowsバッチファイルで楽をする: INIファイルの読み込み

Windows
記事内に広告が含まれています。

こんにちは、
この記事では、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のバージョンやリリースによっては、記載されているコマンドが実行できない、または異なる結果をもたらす可能性があります。
また、会社内のパソコンなどでは、ポリシーや権限によって実行できない場合があります。
実行には管理者権限が必要な場合が多いため、注意が必要です。
この記事の情報を使用することによって生じる問題や結果について、筆者およびサイト管理者は責任を負いません。
すべての操作は自己責任で行ってください。

最後までお読みいただきありがとうございました。
またお会いしましょう!

コメント

タイトルとURLをコピーしました