Comment récupérer des variable depuis une section .ini
Bonjour,
voila que je me casse la tête depuis plus de 7 heures non stop pour récupérer des réglages et des variables depuis un fichier ini afin de minimiser mon script:
de cette manière, pas de souci.
parametres.ini
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
[setting1]
TECHNAME=Nicolas Trantigroin
NETSET=255.255.255.0
PROXSET=192.175.2.4
TEST=Petite phrase1
[setting2]
TECHNAME2=Jean Dupont
NETSET2=192.168.1.1
PROXSET2=NO PROXY
TEST2=GRANDE PHRASE
[setting3]
TECHNAME3=Mickael Jackson
NETSET3=10.0.0.1
PROXSET3=8.8.8.8
TEST3=Pas de phrase |
test.bat
Code:
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 26 27 28 29 30
| @echo off
title Test ini file
REM for /f "tokens=1,2 delims==" %%I in ('type test.ini') do SET %%I=%%J
echo %TECHNAME%
echo %NETSET%
ECHO %PROXSET%
ECHO %TEST%
pause >nul
echo setting1
echo %TECHNAME2%
echo %NETSET2%
ECHO %PROXSET2%
ECHO %TEST2%
pause >nul
echo setting2
echo %TECHNAME3%
echo %NETSET3%
ECHO %PROXSET3%
ECHO %TEST3%
pause >nul
echo setting3 |
mais voila ce qui m'interesse c'est d'appeller les section [setting1] [setting2] ou [setting3] selon mes besoins.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
[setting1]
TECHNAME=Nicolas Trantigroin
NETSET=255.255.255.0
PROXSET=192.175.2.4
TEST=Petite phrase1
[setting2]
TECHNAME=Jean Dupont
NETSET=192.168.1.1
PROXSET=NO PROXY
TEST=GRANDE PHRASE
[setting3]
TECHNAME=Mickael Jackson
NETSET=10.0.0.1
PROXSET=8.8.8.8
TEST=Pas de phrase |
test.bat
Code:
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 26 27 28 29 30 31 32 33 34
| @echo off
title Test ini file
REM for /f "tokens=1,2 delims==" %%I in ('type test.ini') do SET %%I=%%J
call [setting1]
echo %TECHNAME%
echo %NETSET%
ECHO %PROXSET%
ECHO %TEST%
pause >nul
echo setting1
call [setting2]
echo %TECHNAME%
echo %NETSET%
ECHO %PROXSET%
ECHO %TEST%
pause >nul
echo setting2
call [setting3]
echo %TECHNAME%
echo %NETSET%
ECHO %PROXSET%
ECHO %TEST%
pause >nul
echo setting3 |
ou pour etre plus précis
config.ini
Code:
1 2 3 4 5 6 7 8 9 10
|
[dotnet]
setup=%TMP%\setup.exe
INSTALL=/r /norestart /log %TEMP%\dotnet.htm
[firefox]
setup=%TMP%\setup.exe
install=/s
[toto]
setup=%TMP%\setup.exe
install=/noreboot /verysilent /autreoption |
install.bat
Code:
1 2 3 4 5 6 7 8
|
@echo off
echo debut de l'install
call [dotnet]
%setup% %install%
call [firefox]
%setup% %install%
echo etc etc etc... |
En gros de changer les variable à la volée...
Merci d'avance.
[BAT] Executer un .INI par section
Hello !
Voici ma solution !
Il faut juste rajouter à la fin de ton ini la balise
[end]
test.ini :
Citation:
[dotnet]
setup=%tmp%\test.bat
INSTALL=/r /norestart /log %TEMP%\dotnet.htm
[firefox]
setup=%tmp%\setup.exe
install=/s
[toto]
setup=%tmp%\setup.exe
install=/noreboot /verysilent /autreoptio
[end]
et ensuite voilà le bat :
Code:
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
::By SachaDee - 2015
@echo off
setlocal enabledelayedexpansion
call:traite dotnet
echo --------------
call:traite firefox
echo --------------
call:traite toto
echo --------------
exit /b
:traite
set "setup="
set "install="
echo Traitement de ==^> %1
set "$sw=0"
for /f "delims=" %%a in (test.ini) do (
if !$sw!==1 (
set "$Ligne=%%a"
if "!$Ligne:~0,1!"=="[" (
goto:end
) else (
set "%%a"
)
)
if /i "%%a"=="[%1]" set "$sw=1"
)
goto:eof
:end
echo Envoie de ==^> !setup! !install!
call !setup! !install! |
;)