Eliminar texto de líneas en archivo txt

Me gustaría saber como eliminar parte de un texto de todas las líneas de un .txt, el problema es que parte del texto a quitar es <h1> y </h1>, por ejemplo

Textoelquesea <h1> texto que no se quita con espacios </h1>

1 respuesta

Respuesta
2

Prueba con esto:

@echo off
Setlocal EnableDelayedExpansion
del /q kkk.txt
for /f "delims=" %%a in ('type bernal.txt') do (
set linea=%%a
set linea=!linea:^<h1^>=!
set linea=!linea:^</h1^>=!
Echo ! Linea! >> kkk.txt
)

Se supone que el archivo original se llama bernal.txt (obviamente puedes poner ahí el nombre que corresponda) y el archivo modificado se guarda en kkk.txt. Si compruebas que el resultado es el correcto luego puedes hacer un copy sobre el archivo original. Si te da algún problema saca un pantallazo y lo vemos aquí.

¡Gracias!  Perfecto.

Tengo un pequeño problema, me deja un espacio en blanco al final de cada línea que genero, ¿cómo puedo eliminar este espacio en blanco al final de todas las líneas? Supongo que será sencillo, pero estoy muy pez en programación batch, gracias por adelantado.

Solucionado, era porque dejaba un espacio en Echo !Línea! >> fichero.txt

Efectivamente hay que tener mucho cuidado a la hora de hacer ese tipo de redirección porque a veces creemos que esos espacios forman parte de la sintaxis del comando o que le dan "legibilidad" y resulta que se incorporan a la propia salida del comando.

Y ahora veo que la página también hizo "una de las suyas" al incluir un espacio entre la "!" y el nombre de la variable "linea" (además de ponerla con mayúscula, pero la mayúscula no afecta y el espacio sí). Pero veo que lo has corregido.

Una cuestión más,  como puedo hacer que se ejecute parte del código todos los días 1, 2 y 3  de cada mes?

En principio creo que podrías usar las "tareas programadas" de Windows. Si tienes dificultades dime con que versión de Windows trabajas e intentaré explicarte como se usan. Lo tengo muy claro en Windows XP, pero en las versiones posteriores tengo que mirármelo porque no lo tengo tan "interiorizado".

Pero mi duda es, desde el propio programa bat, se puede hacer que ejecute un trozo de código los días 1 2 y 3 de cada mes?

No sé si te refieres a que un programa bat en ejecución (sin que nos preguntemos de qué manera se puso en ejecución) controle si el día actual es 1, 2 ó 3, y en ese caso ejecute una parte de su código o a alguna otra cosa. Para esto podría valer lo que sigue:

@echo off
set dia=%date:~0,2%
if %dia% lss 4 goto :codigo
...
...
:Codigo
rem aquí iría el código a ejecutar solo los días 1, 2 ó 3 de cada mes

El comando date es "regional" de modo que el formato de la variable %date% puede ser distinto para distintas configuraciones regionales de Windows. El que he puesto permite extraer el día para la configuración "Español (España)".

Si te refieres a alguna otra cosa intenta explicarla con un poco de detalle para ver si podemos aportar algo.

¿Algo más que decir sobre esto?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas