Batch dos lire un fichier
Résolu
remousse
Messages postés
299
Date d'inscription
Statut
Membre
Dernière intervention
-
remousse Messages postés 299 Date d'inscription Statut Membre Dernière intervention -
remousse Messages postés 299 Date d'inscription Statut Membre Dernière intervention -
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:> -
Voici 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