PB de lecture fichier comportant des " " - Shell/Batch - Programmation
MarshPosté le 23-06-2014 à 16:24:20
Bonjour,
Je reçois des fichiers qui comprennent plusieurs fichiers .xml concaténés en un seul.
J'ai donc dans ceux-ci plusieurs lignes avec la balise <?xml et je ne peux pas les traiter sur mon Iséries qui considère que c'est une anomalie.
J'ai donc pensé éclater mon fichier avec un compteur à chaqe fois que je rencontre cette balise, par le batch que voici.
set fichier=e:\Temp\RelPrel.xml setlocal enabledelayedexpansion set /a num=0 If not exist "%fichier%" (goto fin) for /f "tokens=1 delims=:" %%I in ('type "%fichier%"') do ( if %%I=="<?xml version="1.0" encoding="UTF-8"?>" ( set /a num+=1 ) echo %%I>>e:\Temp\RelPrel-%date:~-4,4%%date:~-7,2%%date:~-10,2%-!num!.xml ) :fin endlocal
Il semble que le test : if %%I=="<?xml version="1.0" encoding="UTF-8"?>" ne fonctionne pas car le compteur reste à 0 De plus la ligne suivante qui est : <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> n'est pas copiée en entier et je n'ai que : <Document xmlns="urn
Je pense que le .bat est géné par les " car les autres enregistrements sont correctement copiés.
Quelqu'un peut-il me venir en aide, je tourne en rons depuis des jours.
Marsh Posté le 23-06-2014 à 16:24:20
Bonjour,
Je reçois des fichiers qui comprennent plusieurs fichiers .xml concaténés en un seul.
J'ai donc dans ceux-ci plusieurs lignes avec la balise <?xml et je ne peux pas les traiter sur mon Iséries qui considère que c'est une anomalie.
J'ai donc pensé éclater mon fichier avec un compteur à chaqe fois que je rencontre cette balise, par le batch que voici.
set fichier=e:\Temp\RelPrel.xml
setlocal enabledelayedexpansion
set /a num=0
If not exist "%fichier%" (goto fin)
for /f "tokens=1 delims=:" %%I in ('type "%fichier%"') do (
if %%I=="<?xml version="1.0" encoding="UTF-8"?>" (
set /a num+=1
)
echo %%I>>e:\Temp\RelPrel-%date:~-4,4%%date:~-7,2%%date:~-10,2%-!num!.xml
)
:fin
endlocal
Il semble que le test : if %%I=="<?xml version="1.0" encoding="UTF-8"?>" ne fonctionne pas car le compteur reste à 0
De plus la ligne suivante qui est : <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> n'est pas copiée en entier et je n'ai que : <Document xmlns="urn
Je pense que le .bat est géné par les " car les autres enregistrements sont correctement copiés.
Quelqu'un peut-il me venir en aide, je tourne en rons depuis des jours.
Merci