Pequeña ayuda con comandos en .bat para eliminar texto

Buenas tardes, a ver si me podeis echar una mano con una, muy seguramente, tontería pero que llevo quebrandome la cabeza toda la mañana.

Tengo un archivo llamémosle programación.xml con una serie de datos, a ese programación.xml se le pasa un procesado para que añada cierta nueva información. Problema, inserta algunos tags, que algunos programas no los reconoce. Es decir, que en vez de aparecer así.

Nombre: Texto de prueba

aparece así

[color red]Nombre:[/color] Texto de prueba


Duplicar el procesado del xml no es viable, porque es casi una hora y pico lo que tarda y mi idea es, hacer un duplicado del programación.xml y crear un programación1.xml para que pueda ser leído también por el resto de programas y aunque sea un texto sin formato, al menos aparezca de este modo

Nombre: Texto de prueba

Buscando por ahí he encontrado un código y creando un .bat puedo eliminar esos tags,
@echo off
    setlocal enableextensions disabledelayedexpansion

    set "search=[COLOR orange]"
    set "replace="
   
    set "textFile=programación.xml"

    for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
        set "line=%%i"
        setlocal enabledelayedexpansion
        >>"%textFile%" echo(!line:%search%=%replace%!
        endlocal
    )


El problema es que no se cómo hacer para quitar todos los tags de una vez, pues necesito sustituir los siguientes tags, "[COLOR orange], [COLOR green] y [COLOR gold] además de quitar el [/COLOR].

Mientras seguiré indagando por ahí a ver si veo algo...
Buenas, ¿podría utilizarse un Script?, no tengo mucha idea del tema pero a lo mejor algo de esto funciona

https://foro.elhacker.net/scripting/bat ... 358.0.html
https://liljunior.wordpress.com/tag/bor ... on-un-bat/

@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
)



[@echo off
for /f "tokens=*" %%a in ('dir /b/s *^(*^).* ^| findstr ^(*[0-9]^)\.') do (echo del "%%a")





Saludos
Buenas! gracias por contestar, le echaré un ojo, aunque de momento lo tengo solucionado así:

perl -p -i.bak -e "s/\[COLOR orange]//g" programación.xml
perl -p -i.bak -e "s/\[COLOR green]//g" programación.xml
perl -p -i.bak -e "s/\[COLOR gold]//g" programación.xml
perl -p -i.bak -e "s/\[\/COLOR]//g" programación.xml


Usando Perl y combinando todos los comandos en un .bat, así es ejecutar y en apenas un segundo están todos esos tags eliminados.

Por si a alguien le sirve para la posterioridad [+risas]

Nota, las "\" antes de los "[" sirven para poder eliminar los caracteres reservados "+ ? . * ^ $ ( ) [ ] { } | & \" y no pongo nada entre las dos "//" porque no quiero sustituir por nada, simplemente borrarlas.
2 respuestas