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 à chaque fois que je rencontre cette balise, par le batch que voici.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 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:techsd:pain.002.001.02" xmlnssi="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 rond depuis des jours.

Merci