ms-dos no image

Published on noviembre 21st, 2013 | by Miguel Angel Berlanga Alvarez

1

Sustituir una cadena por otra | script bat bacht ms-dos

Con este batch podemos sustituir una cadena por otra a todos los ficheros que se encuentren dentro de una carpeta.

El código lo encontre en de la web todoexpertos, lo comparto porque me pareció muy útil.

Copiamos el código siguiente y lo metemos dentro de un fichero que yo he llamado sustituye.bat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@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 "="
Echo Ejemplo:
echo %0 de DE *.txt
:Fin

Para ejecutarlo, lo llamamos y le pasamos los tres parámetros que necesitamos desde la consola de ms-dos.
Los parámetros son:
1- La cadena a buscar.
2- La cadena que vas a sustituir.
3- La carpeta o archivo en la que quieres que se realice el cambio.

sustituye.bat PALABRA_A_BUSCAR "SUSTITUIR_POR" C:\prueba\*.sql

En el caso que queramos sustituir un grupo de cadenas, podemos hacerlo mediante un script que irá llamando a nuestro
bat sustituye.bat cambiando los parámetros.

El código sería así:

1
2
3
4
5
6
7
@echo off
echo lanza_sustituye
CALL C:\prueba\sustituye.bat PALABRA_A_BUSCAR1 "SUSTITUIR_POR1" C:\prueba\*.sql
CALL C:\prueba\sustituye.bat PALABRA_A_BUSCAR2 "SUSTITUIR_POR2" C:\prueba\*.sql
CALL C:\prueba\sustituye.bat PALABRA_A_BUSCAR3 "SUSTITUIR_POR3" C:\prueba\*.sql
....
....

El fichero lo he llamado lanza.bat y tal y como está sustituiria una cadena por otra en todos los archivos .sql que se encuentren dentro de la carpeta prueba.


About the Author



One Response to Sustituir una cadena por otra | script bat bacht ms-dos

  1. jose says:

    Buen dia podrias ayudarme, es perfecto tu codigo, pero tengo una exepcion. No logro que funcione para reemplazar el simbolo | por otro caracter, ya que me dice que el caracter por el que lo voy a reemplazar no es un parametro. osea q me esta poniendo poblema para trabajar con ese simbolo.

    He usado ponerlo con ^| pero no sirve.

    Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada.


+ 5 = trece

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Back to Top ↑