elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema sustitución carácter específico por otro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema sustitución carácter específico por otro  (Leído 422 veces)
Puchu

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema sustitución carácter específico por otro
« en: 29 Octubre 2018, 09:45 am »

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!


En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.563



Ver Perfil
Re: Problema sustitución carácter específico por otro
« Respuesta #1 en: 29 Octubre 2018, 14:45 pm »

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
  1. setlocal EnableDelayedExpansion
  2.  
  3. set fichero=txt.inf
  4.  
  5. ren !fichero! !fichero!.bak
  6. del !fichero!
  7. for /f "tokens=*" %%L in (!fichero!.bak) do (
  8.  set linea=%%L
  9.  if "!linea:~0,1!" == "1" (
  10.    echo 0!linea:~1!>>!fichero!
  11.  ) else (
  12.    echo !linea!>>!fichero!
  13.  )
  14. )


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines