Ajouter une ligne dans un fichier texte
Bonjour,
J'écris un batch pour ajouter une ligne dans un fichier texte (.bat)
J'ajoute du texte sur la troisième ligne du fichier. (variable %tmp%)
Mes variables:
mess_rem = texte à ajouter en début de fichier
mess = texte à ajouter
fichier_sync_tmp = nom du fichier temporaire
fichier_sync = fichier d'origine a modifier
Mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| set /a a1=0
set /a tmp=3
rem ajout de la première ligne
echo %mess_rem% > %fichier_sync_tmp%
rem on lit le fichier ligne par ligne
for /f "delims=" %%a in ('type %fichier_sync%') do call :subfor %%a
goto suite
rem on traite ligne par ligne
:subfor
set /a a1=a1+1
rem si le numéro de ligne <> %tmp% je colle le texte d'origine
rem si le numéro de ligne = %tmp% je colle mon texte ajouté
if not %a1% == %tmp% echo %1 >> %fichier_sync_tmp%
if %a1% == %tmp% echo %mess% >> %fichier_sync_tmp%
goto :EOF
:suite |
Mon problème :
Lors de la commande do call :subfor %%a dans le :subfor, je ne retrouve que le premier mot de chaque ligne.
Si je met do call :subfor "%%a" j'ai bien la ligne complète mais avec entre guillemets.
Si quelqu'un a une solution ...
Merci