Bonjour,


Je cherche à lire le contenu d'un fichier ini, et attribuer les valeurs du résultat de ma recherche à des variables.
Voici le contenu de test.ini
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
[DIRLSVC]
F2=%ProgramFiles(x86)%\App
F2REL=%F2%\tst
[DIRAPP]
F2=C:\APP\newclient
[LSVC]
SUFFIX_SERVICE=tstesp
J'ai ensuite 2 fichiers cmd
read_ini.cmd

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@setlocal enableextensions enabledelayedexpansion
@echo off
set file=%1
set area=[%2]
set key=%3
set currarea=
for /f "delims=" %%a in (!file!) do (
    set ln=%%a
    if "x!ln:~0,1!"=="x[" (
        set currarea=!ln!
    ) else (
        for /f "tokens=1,2 delims==" %%b in ("!ln!") do (
            set currkey=%%b
            set currval=%%c
            if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
                echo !currval!
            )
        )
    )
)
endlocal

et test.cmd

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
for /f "delims=" %%a in ('call read_ini.cmd test.ini DIRLSVC F2') do (
    set F2=%%a
	)



for /f "delims=" %%a in ('call read_ini.cmd test.ini DIRLSVC F2REL') do (
    set F2REL=%%a
)


for /f "delims=" %%a in ('call read_ini.cmd test.ini DIRAPP F2') do (
    set LOCALF2=%%a
)


for /f "delims=" %%a in ('call read_ini.cmd test.ini LSVC SUFFIX_SERVICE') do (
    set SUFFIX_SERVICE=%%a
)


SET LocalDBInstall=%F2%\%SUFFIX_SERVICE%

SET LocalClientInstall=%LOCALF2%\%SUFFIX_SERVICE%
La variable F2 devrait contenir la valeur de %ProgramFiles(x86)% contenue dans l'ini, qui devrait être remplacée par la variable d'environnement C:\Program Files (x86).
Malheureusement, quand je fais un echo de F2, j'obtiens %ProgramFiles(x86)% et pas C:\Program Files (x86)...
De même, quand je fais un echo de LocalDBInstall, j'obtiens %ProgramFiles(x86)%\tstesp, et je voudrais avoir C:\Program Files (x86)\tstesp

Comment faire pour que F2 ait comme valeur non pas la variable (%%) , mais la valeur de celle-ci?