Remplacer UN caractère dans un .txt en batch.

Fermé
dimedean - 25 juin 2010 à 14:37
 dimedean - 26 juin 2010 à 16:49
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.



A voir également:

5 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
26 juin 2010 à 08:52
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:>
1
OK merci de votre patience les gars impeccable !

bonne journée a tous.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 juin 2010 à 15:14
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
C:> set x=1234567890

C:> echo %x:~0,2%X%x:~3,10%
12X4567890

C:>
0
Merci beaucoup dubcek pour cet réponse rapide et précise !! je vais essayer tout ça je te tien au courant . encore merci .
0
Merci dubcek je viens d'essayer ce que tu m'a proposer et je n'y arrive pas je suis novice en batch.

ce que je voudrai savoir c'est ce que cela donne concrètement par ce que j'ai essayer plusieurs syntaxes différentes mais ça ne marche pas.

Voila encore merci.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 juin 2010 à 16:13
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:>
0

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.
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
25 juin 2010 à 21:40
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
@+
0