Batch dos lire un fichier
Résolu
Bonjour,
Je fait un script dos et j'aimerai lire un fichier xml afin d'en récupérer le contenu dans une variable.
Fichier à lire:
<?xml version="1.0" encoding="UTF-8"?>
<toto>
<NAME>transfer_1343137181999</NAME>
Je veux récupérer le contenu de la balise NAME à savoir transfer_1343137181999.
Pour ce faire j'ai codé ceci:
<code>for /F "delims= tokens=1,*" %%i in ('findstr /n "^" %RESULT_FOLDER% ^| findstr "^3:"') do echo %%i
cela me permet d'obtenir ceci:
3: <NAME>transfer_1343137181999</NAME>
je n'arrive pas à délimiter pour avoir uniquement le contenu de la balise.
Par avance merci
Je fait un script dos et j'aimerai lire un fichier xml afin d'en récupérer le contenu dans une variable.
Fichier à lire:
<?xml version="1.0" encoding="UTF-8"?>
<toto>
<NAME>transfer_1343137181999</NAME>
Je veux récupérer le contenu de la balise NAME à savoir transfer_1343137181999.
Pour ce faire j'ai codé ceci:
<code>for /F "delims= tokens=1,*" %%i in ('findstr /n "^" %RESULT_FOLDER% ^| findstr "^3:"') do echo %%i
cela me permet d'obtenir ceci:
3: <NAME>transfer_1343137181999</NAME>
je n'arrive pas à délimiter pour avoir uniquement le contenu de la balise.
Par avance merci
4 réponses
-
hello
passer le résultat %%i dans une autre boucle forC:> set var="3: <NAME>transfer_1343137181999</NAME>" C:> echo %var% "3: <NAME>transfer_1343137181999</NAME>" C:> for /f "delims=>< tokens=3" %a in ('echo %var%') do @echo %a transfer_1343137181999 C:> -
ContributeurVoici pour séparer les <NAME> </NAME> :
for /F "delims=<,> tokens=1,2,*" %%a in ('type fichier.xml ^| findstr "NAME"') do echo %%b pauseCela nous amène à : transfer_1343137181999 -
j'ai essayé ceci mais je n'obtiens pas le bon résultat
for /F "delims= tokens=1,*" %%i in ('findstr /n "^" %RESULT_FOLDER% ^| findstr "^3:"') do for /f "delims=>< tokens=3" %%a in (%%i) do echo %%a
Résultat: Le système ne peut trouver le fichier 3:.
Merci -
c'est bon je suis passé par un fichier temporaire pour sauvegarder mon %%i et cela fonctionne parfaitement:
for /F "delims= tokens=1,*" %%i in ('findstr /n "^" %RESULT_FOLDER% ^| findstr "^3:"') do ( echo %%i >> result.tmp for /f "delims=>< tokens=3" %%a in (result.tmp) do echo %%a del result.tmp )
Merci pour votre aide rapide