Remplacer UN caractère dans un .txt en batch.
dimedean
-
dimedean -
dimedean -
Bonjour, j'aimerai savoir comment je pourrai remplacer un seul caractère dans un fichier txt en utilisant un .bat ou autre...je m'explique :
j'ai un fichier texte contenant :
00000000
Et je voudrai pouvoir changer un seul de ces "0" par un "1" du genre
00100000
L'idée et de pouvoir contrôler chacun des caractère séparément sans avoir a modifier tout les autres.
PS: je pensé créer 8 fichier bat gérant chacun un des 8 caractère...
Voila j'espère que quelqu'un trouvera mon bonheur ! je vous remercie d'avance bonne journée a tous.
j'ai un fichier texte contenant :
00000000
Et je voudrai pouvoir changer un seul de ces "0" par un "1" du genre
00100000
L'idée et de pouvoir contrôler chacun des caractère séparément sans avoir a modifier tout les autres.
PS: je pensé créer 8 fichier bat gérant chacun un des 8 caractère...
Voila j'espère que quelqu'un trouvera mon bonheur ! je vous remercie d'avance bonne journée a tous.
A voir également:
- Remplacer UN caractère dans un .txt en batch.
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Remplacer disque dur par ssd - Guide
- Remplacer un mot dans word - Guide
5 réponses
ce .bat prend 2 paramètres, la position du caractère à changer et la valeur de remplacement
C:> type lpt.txt 00000000 C:> aa 3 1 C:> type lpt.txt 00100000 C:> aa 5 2 C:> type lpt.txt 00102000 C:> aa 3 0 C:> type lpt.txt 00002000 C:> type aa.bat @echo off set pos=%1 set /a p1=pos-1 set c=%2 setlocal enableDelayedExpansion for /f "tokens=1" %%a in (lpt.txt) do ( set x=%%a set y=!x:~0,%p1%!%c%!x:~%pos%,10! echo !y! > lpt.txt ) C:>
hello
on affiche 2 caractères puis le X puis le reste à partir du 4ème caractère, donc on a remlacé le 3 par X
on affiche 2 caractères puis le X puis le reste à partir du 4ème caractère, donc on a remlacé le 3 par X
C:> set x=1234567890 C:> echo %x:~0,2%X%x:~3,10% 12X4567890 C:>
Merci beaucoup dubcek pour cet réponse rapide et précise !! je vais essayer tout ça je te tien au courant . encore merci .
montre un exemple plus précis de ce que tu veux faire
C:> set x=00000000 C:> set y=%x:~0,2%1%x:~3,10% C:> echo %x% & echo %y% 00000000 00100000 C:>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Donc je m'explique, mon fichier "lpt.txt" ce trouve a la racine de mon HDD, il contient:
00000000
Et je voudrai creer des fichiers bat capable de changer chacun des caractères séparement comme je l'est énoncer avant.
Mon problemme ce pose surtout sur la syntaxe du fichier bat. si tu pouvais me montrer clairement ce qu'y ce trouve dans le .bat. (non pas que ton éxplication n'est pas clair mais comme je l'es dit je suis novice en bat).
Voila voila merci.
j'espere avoir etait un peu plus clair.
00000000
Et je voudrai creer des fichiers bat capable de changer chacun des caractères séparement comme je l'est énoncer avant.
Mon problemme ce pose surtout sur la syntaxe du fichier bat. si tu pouvais me montrer clairement ce qu'y ce trouve dans le .bat. (non pas que ton éxplication n'est pas clair mais comme je l'es dit je suis novice en bat).
Voila voila merci.
j'espere avoir etait un peu plus clair.
salut,
tu peux utiliser sed.exe (http://gnuwin32.sourceforge.net/packages/sed.htm et dans ton batch cela te donne:
sed monfichier.txt -e"s/00000/00001/g" > monfichier1.txt
del monfichier.txt
rename monfichier1.txt monfichier.txt
@+
tu peux utiliser sed.exe (http://gnuwin32.sourceforge.net/packages/sed.htm et dans ton batch cela te donne:
sed monfichier.txt -e"s/00000/00001/g" > monfichier1.txt
del monfichier.txt
rename monfichier1.txt monfichier.txt
@+
bonne journée a tous.