Reemplazar un carácter en un .txt en batch.
dimedean
-
dimedean -
dimedean -
Bonjour, j'aimerais savoir comment je pourrais 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 voudrais pouvoir changer un seul de ces "0" par un "1" du genre
00100000
L'idée est de pouvoir contrôler chacun des caractères séparément sans avoir à modifier tous les autres.
PS : je pensais créer 8 fichiers bat gérant chacun un des 8 caractères...
Voilà, j'espère que quelqu'un trouvera mon bonheur ! je vous remercie d'avance, bonne journée à tous.
Configuration : Windows XP / Firefox 3.6.4
j'ai un fichier texte contenant :
00000000
Et je voudrais pouvoir changer un seul de ces "0" par un "1" du genre
00100000
L'idée est de pouvoir contrôler chacun des caractères séparément sans avoir à modifier tous les autres.
PS : je pensais créer 8 fichiers bat gérant chacun un des 8 caractères...
Voilà, j'espère que quelqu'un trouvera mon bonheur ! je vous remercie d'avance, bonne journée à tous.
Configuration : Windows XP / Firefox 3.6.4
5 respuestas
-
este .bat toma 2 parámetros, la posición del carácter a cambiar y el valor de reemplazo
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:>
-
hola
se muestran 2 caracteres, luego la X y el resto a partir del 4º carácter, así que hemos reemplazado el 3 por XC:> set x=1234567890 C:> echo %x:~0,2%X%x:~3,10% 12X4567890 C:>
-
¡Muchas gracias, Dubcek, por tu respuesta rápida y precisa! Voy a intentar todo eso, te mantendré informado. ¡De nuevo, gracias!
-
Voici 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:>
-
-
Hola,
puedes usar sed.exe (http://gnuwin32.sourceforge.net/packages/sed.htm y en tu batch eso te da:
sed monfichier.txt -e"s/00000/00001/g" > monfichier1.txt
del monfichier.txt
rename monfichier1.txt monfichier.txt
@+
-