Batch-Datei: So lesen Sie nur Abschnitte in einer INI-Datei

Ich bin ein Anfänger in Batch Scripting und ich versuche, ein einfaches Skript zu schreiben, um aus einer INI-Datei basierend auf den Parametern, die beim Aufrufen der Batch-Datei übergeben werden, zu lesen.

Dies ist ein Beispiel dafür, wie die INI-Datei aussehen würde:

[SETTING1]
Value1=Key1
Value2=Key2
Value3=Key3

[SETTING2]
Value1=Key1
Value2=Key2
Value3=Key3

[SETTING3]
Value1=Key1
Value2=Key2
Value3=Key3

Ich habe ein Problem, wenn es darum geht, NUR den aufgerufenen Abschnitt zu lesen. Es wird aus jedem Abschnitt gelesen, der mit "Value" und "Key" übereinstimmt, und ich weiß nicht, wie ich es einschränken soll, um nur den Abschnitt mit den Einstellungen zu lesen.

Die Datei wird mit diesem Parameter aufgerufen: run.bat run.ini setting2. Mein Code unten ist das, was ich bisher habe und ich fühle mich, als hätte ich offiziell eine Wand getroffen. Kann mir jemand dabei helfen? Jede Hilfe wäre sehr dankbar.

    @ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET INIFile="%~f1"

for /f "usebackq delims=" %%a in (!INIFile!) do (
        if %%a==[%2] (
        SET yesMatch=%%a
            for /f "tokens=1,2 delims==" %%a in (!yesMatch!) do (
                if %%a==Value1 set Key1=%%b
                if %%a==Value2 set Key2=%%b
                if %%a==Value3 set Key3=%%b
)
        ECHO !yesMatch!
        ECHO !Key1!
        ECHO !Key2!
        ECHO !Key3!
        pause
)
)

pause
exit /b

Antworten auf die Frage(2)

Ihre Antwort auf die Frage