Bonjour,
J'ai un souci avec un batch.
J'ai un document texte (%FileName%.txt) avec une suite de caractères qui composent des transactions.
Chaque transaction débute toujours par : 0087TR88D
Je souhaite découper cette chaine pour que chaque transaction s'affiche sur une ligne.
Comme je ne peux pas me servir d'une boucle for avec un delimiteur (car le délimiteur fait 9 caractères et pas un seul), je mets ma chaine dans une variable, j'identifie le délimiteur (les 9 premiers caractères de la chaine, soit 0087TR88D) et je fais un remplacement de ce délimiteur 0087TR88D par *0087TR88D
Et ensuite, je peux faire une boucle for et me servir de l'étoile comme nouveau délimiteur.
Voici le code :
Sauf que cela ne fonctionne pas ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for /f "delims=" %%i in ('type ".\%FileName%.txt"') do ( set FileContent=%%i ) set Delimiter=%FileContent:~0,9% setlocal enabledelayedexpansion set FileContentDelimited=!FileContent:%Delimiter%=*%Delimiter%! for /f "delims=*" %%j in ("%FileContentDelimited%") do ( echo %%j>> .\result.txt )
Ca ne me prend que la 1e transaction ...
Si je rajoute un tokens=*, ca va me mettre toute la chaine de caractères à la suite, sans retour à la ligne entre chaque transaction ...
Je veux bien un petit peu d'aide !
Merci !
Partager