Crear Bat que sustituye cadenas de caracteres entre archivos

Como crear un archivo .bat para sustituir una cadena por otra en todos los archivos .txt que se encuentren dentro de una carpeta.

1 respuesta

Respuesta

Prueba con esto:

@echo off
Setlocal EnableDelayedExpansion
if "%3" == "" goto ayuda
set cadorig=%1
set cadorig=%cadorig:"=%
set cadsust=%2
set cadsust=%cadsust:"=%
for %%f in (%3) do (call :cambiar %%f)
goto fin
:cambiar
set archivo=%1
for /f "tokens=* delims=" %%i in (%archivo%) do (set ANT=%%i&echo !ANT:%cadorig%=%cadsust%! >>kk_temp.txt)
copy /y kk_temp.txt %archivo%
del /q kk_temp.txt
goto :EOF
:Ayuda
Echo Reemplaza una cadena por otra en el contenido de archivos (con comodines)
echo Utiliza un archivo temporal kk_temp.txt que no debe existir previamente
echo Formato: %0 cadorig cadsust archivos
echo Si las cadenas contienen espacios deben escribirse entrecomilladas
echo No funciona si la cadena original contiene un "=" o "*"
Echo Ejemplo:
echo %0 de DE *.txt
:Fin

Como se dice en el texto de la "ayuda" no funciona si la cadena original contiene "=" o "*". Además elimina las líneas en blanco de los archivos tratados.

Pruébalo y me dices algo.

Me gustaría saber si has probado esta solución y si te ha servido o no. Si las limitaciones comentadas afectan a tus necesidades dímelo también y podemos intentar alguna otra solución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas