[BATCH] Comment écrire à la suiet d'un fichier
Posté : 17 avr. 2008 12:32
Bonjour,
Ma question parrait simple, mais c'est un peu plus compliquer
J'ai 2 boucle for Imbriquées , chacune écrit dans un fichier "b.txt", le problème, c'est qu'a chaque fois que je fait un echo xxx >> b.txt , il fait un retour chariot et me colle chaque ligne les unes en dessous des autres.
J'aimerai qu'a chaque fois que j'écris dans ce fichier, que ca ne revienne pas à la ligne, que ca me colle tout à la suite, que ca ne fasse qu'un bloc
Comme ceci :
xxx;yyy;zzz;
Et non comme cela :
xxx;
yyy;
zzz;
Code utilisé :
@echo off
cls
if exist b.txt (del b.txt)
FOR /F "usebackq tokens=1,2 delims=;" %%i in ("a.txt") do (
echo %%i >> b.txt
FOR /F "tokens=1,2,3 delims=:" %%k in ("%%j") do (
echo ;%%k;%%l;%%m >> b.txt
)
)
PS : Le but de ce programme est de créer un fichier exel, en parsant le fichier a.txt qui est un log contenant des erreurs de compilation. Le fichier a.txt se présente sous la forme
[Chemin_fichier] [n°_Ligne] [code_erreur] mais d'un seul bloc, comme ceci :
N:\CODE\VERIF_TOOLS\RESULTATS\FileAirway_Element.adb;Before line 47:Tag Not Found before function/procedure : name
J'utilise des boucle For pour parser le fichier et le découper en 3 partie (Chemin, n°ligne et code_erreur). Pour cela , je passe par un fichier temporaire b.txt pour coller le découpage de mon a.txt
Si vous avez des idées, ca serait génial !
Ma question parrait simple, mais c'est un peu plus compliquer
J'ai 2 boucle for Imbriquées , chacune écrit dans un fichier "b.txt", le problème, c'est qu'a chaque fois que je fait un echo xxx >> b.txt , il fait un retour chariot et me colle chaque ligne les unes en dessous des autres.
J'aimerai qu'a chaque fois que j'écris dans ce fichier, que ca ne revienne pas à la ligne, que ca me colle tout à la suite, que ca ne fasse qu'un bloc
Comme ceci :
xxx;yyy;zzz;
Et non comme cela :
xxx;
yyy;
zzz;
Code utilisé :
@echo off
cls
if exist b.txt (del b.txt)
FOR /F "usebackq tokens=1,2 delims=;" %%i in ("a.txt") do (
echo %%i >> b.txt
FOR /F "tokens=1,2,3 delims=:" %%k in ("%%j") do (
echo ;%%k;%%l;%%m >> b.txt
)
)
PS : Le but de ce programme est de créer un fichier exel, en parsant le fichier a.txt qui est un log contenant des erreurs de compilation. Le fichier a.txt se présente sous la forme
[Chemin_fichier] [n°_Ligne] [code_erreur] mais d'un seul bloc, comme ceci :
N:\CODE\VERIF_TOOLS\RESULTATS\FileAirway_Element.adb;Before line 47:Tag Not Found before function/procedure : name
J'utilise des boucle For pour parser le fichier et le découper en 3 partie (Chemin, n°ligne et code_erreur). Pour cela , je passe par un fichier temporaire b.txt pour coller le découpage de mon a.txt
Si vous avez des idées, ca serait génial !