Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1050 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  recupere des variables dans un .ini (debutant)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recupere des variables dans un .ini (debutant)

n°811819
jmjungmann
Posté le 31-07-2004 à 12:14:15  profilanswer
 

bonjour,
je suis nul en prog.
Je dois faire un batch qui extrait des variables d'un fichier .ini:
 
[SuperDat-IA32]
EngineVersion=4320
DATVersion=4382
FileName=sdat4382.exe
FileSize=5614244
Checksum=9313,D945
 
[ZIP]
EngineVersion=0
DATVersion=4382
FileName=dat-4382.zip
FilePath=/pub/antivirus/datfiles/4.x/
FileSize=3960397
Checksum=E5AB,AE29
MD5=5226781401669f89c572bb9c50ea8f
 
 
 
Comme vous voyez, des champs se repetent plusieurs fois; j'aimerai recuperer :
dans la section SuperDat-IA32 => l'engine version
dans la section zip => la DAT version
et mettre tout ca dans des variables differentes (afin de comparer les versions avec celles existante sur mon server)
 
 
C'est possible de faire çà dans un batch DOS ???
Merci à tous d'avance

mood
Publicité
Posté le 31-07-2004 à 12:14:15  profilanswer
 

n°811938
burgergold
5$? va chez l'diable!
Posté le 31-07-2004 à 14:50:35  profilanswer
 

je ne saurais trop de conseiller d'utiliser un vrai language pour faire des scripts, que ce soir du perl, du python, un truc de ce genre
 
le batch c tellement naze et mal foutu

n°811966
jmjungmann
Posté le 31-07-2004 à 15:38:29  profilanswer
 

bon Ok, à la limite un script visual basic ou quelque chose comme çà; mais pour ma soluce ?

n°812057
skylight
Made in France.
Posté le 31-07-2004 à 19:03:51  profilanswer
 

Hum hum ça sent le McAfee 4.5 ça :D

n°812653
jmjungmann
Posté le 02-08-2004 à 13:04:23  profilanswer
 

bon j'arrive a afficher avec :
grep -A 5 -c [SuperDat-IA32] update.ini | find "EngineVersion"
 
ca m'affiche donc par exemple :
Engineversion=4321
 
Mais j'aimerai que la variable Engineversion prenne cette valeur, pas que ca affiche juste !!! Quelqu'un ???

n°812676
Arrakeen
Posté le 02-08-2004 à 13:44:04  profilanswer
 

j'y travaille l'ami...j'y travaille...;-)

n°813407
Arrakeen
Posté le 03-08-2004 à 11:50:47  profilanswer
 

@echo off
 
set inifile=%1
set flag=0
 
set section=%2
set variable=%3
 
call :GETVALUE %section% %variable%
 
 
goto EXIT
 
 
 
:GETVALUE
 
FOR /F "eol=; tokens=1-2 delims= " %%i in (%inifile%) do (
set line=%%i
 
call :PROCESSLINE %1 %2
)
 
goto EXIT
 
:PROCESSLINE
 
if "%flag%" EQU "1" call :PROCESSVAR %2
 
if "%line%" EQU "[%1]" set flag=1
 
 
goto EXIT
 
:PROCESSVAR
 
echo %line% > temp.txt
 
FOR /F "usebackq tokens=1-2 delims==" %%i in (temp.txt) DO (
 
if "%%i" EQU "%1" (
set %%i=%%j
set flag=0
)
 
)
 
del temp.txt
 
goto EXIT
 
 
:EXIT


Message édité par Arrakeen le 03-08-2004 à 14:18:43
n°813413
Arrakeen
Posté le 03-08-2004 à 11:52:59  profilanswer
 

tu paste ça dans un .bat
le .bat prend 3 parametres : nom fichier .ini, nom section, nom variable
 
ex: mybat.bat myini.ini ZIP FileSize
 
tu auras la valeur de FileSize de la section [ZIP] dans la variable du meme nom :
 
C:\>set FileSize
FileSize=3960397

Message cité 1 fois
Message édité par Arrakeen le 03-08-2004 à 11:54:41
n°814419
jmjungmann
Posté le 04-08-2004 à 07:53:19  profilanswer
 

Une chose a dire >
un GRAND merci, ca marche impeccable (j avais juste un probleme au debut avec les retour chariot en fin de ligne, une fois corrige c tout bon)
 
Vraiement bravo pour ce beau boulot ;)

n°818399
jmjungmann
Posté le 09-08-2004 à 19:56:44  profilanswer
 

argg non j'ai un probleme :
 
tout marche impeccable sur windows2000.
Mais mon batch doit etre implemente sur du NT4, qui ne reconnait pas la commande for avec "usebackq"
 
Y-a-t-il un moyen de faire fonctionner sans usebackq ? Mes tentatives se sont soldees par des echecs  :??:  :??:  :??:  

mood
Publicité
Posté le 09-08-2004 à 19:56:44  profilanswer
 

n°819131
Arrakeen
Posté le 10-08-2004 à 16:19:45  profilanswer
 

iop iop...oki je vais revoir ma copie...je te tiens au courant...

n°819627
jmjungmann
Posté le 10-08-2004 à 22:26:48  profilanswer
 

non c'est bon je pense avoir trouvé :
pour l'adapter a NT4, virer le usebackq
 
et la ligne suivante, if "%%i" EQU "%1" (
remplacer le EQU par ==
 
voilivoilou
 

n°2066265
hamoudaisi
tiktak
Posté le 26-03-2011 à 23:10:15  profilanswer
 

Arrakeen a écrit :

tu paste ça dans un .bat
le .bat prend 3 parametres : nom fichier .ini, nom section, nom variable
 
ex: mybat.bat myini.ini ZIP FileSize
 
tu auras la valeur de FileSize de la section [ZIP] dans la variable du meme nom :
 
C:\>set FileSize
FileSize=3960397


salut  
j'ai essayé avec l'exemple suivant  mybat.bat myini.ini ZIP FileSize et rien m'affiche donc j'ai ajouté "echo %%i" pour que je le teste qu'il fonctionne correctement ou non  
FOR /F "eol=; tokens=1-2 delims= " %%i in (%inifile%) do (  
set line=%%i  
echo %line%
 
call :PROCESSLINE %1 %2  
donc c'est ce qu'il m'affiche:  
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f
MD5=5226781401669f89c572bb9c50ea8f


Message édité par hamoudaisi le 26-03-2011 à 23:28:03
n°2066528
Xspawn_Lpc
Posté le 28-03-2011 à 13:47:16  profilanswer
 

rajoute au début du script :  
setlocal ENABLEDELAYEDEXPANSION


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  recupere des variables dans un .ini (debutant)

 

Sujets relatifs
[Java][PHP][SQL] Debutant: Par quoi commencer??[VBA XL Word] Passer des variables obtenues ss XL dans Word? *RESOLU*
[html]débutant inside...right-left pour des .gif[c#] débutant : Ajout d'un menu déroulant
Débutant en XSLT : <xsl:if>Popup avec variables ?
Questions débutant DBI + Suivi de variablesvariables et ftp
Un debutant qui se noie 
Plus de sujets relatifs à : recupere des variables dans un .ini (debutant)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR