Problema sustitución carácter específico por otro

Iniciado por Puchu, 29 Octubre 2018, 09:45 AM

0 Miembros y 1 Visitante están viendo este tema.

Puchu

Buenos días,

soy nuevo en el foro pero llevo más de 10 años visitándolo para mis dudas. Nunca antes he tenido que escribir para mis dudas, pero la verdad, no encuentro solución a mi pequeño problema.

Sé que la duda igual es muy sencilla para vosotros, pero estoy empezando en MS-DOS y no acabo de encontrar una solución :-\. Conozco el comando rename, pero no me funciona en el caso que necesito.

Tengo este texto en un archivo .inf

07 (Este número me indica cuántas líneas hay en cada .inf)
100101 Bienvenida (40)* (Estas líneas son las que quiero modificar)
000102 Normas (08)*
100103 Plaza (15)*
000104 Iglesia (57)
100105 Av.España (25)*
000106 Correos (12)
000107 Final del dia (05)

Tengo una tarea repetitiva con más de 20 archivos .inf, con textos con este formato y lo único que le debo cambiar es:

A las líneas que empiecen con 1, cambiarlos por un 0. En los 20 .inf que tengo, quiero acceder, ver si empiezan con un 1 y cambiarlo por un 0.

¿Una ayudita, por favor?

¡Mil gracias!

EdePC

Saludos,

- El siguiente Batch toma una fichero y revisa el primer caracter de cada lìnea, si es 1 lo cambia a 0, caso contrario deja la línea tal cual.

- También hace un .bak del fichero dado.

Código (dos) [Seleccionar]
setlocal EnableDelayedExpansion

set fichero=txt.inf

ren !fichero! !fichero!.bak
del !fichero!
for /f "tokens=*" %%L in (!fichero!.bak) do (
  set linea=%%L
  if "!linea:~0,1!" == "1" (
    echo 0!linea:~1!>>!fichero!
  ) else (
    echo !linea!>>!fichero!
  )
)