¿Cómo se puede aumentar caracteres antes de un texto fijo en un archivo .sql ejecutando un archivo .bat?

Tengo un archivo .sql en donde necesito aumentar una cadena de caracteres antes de un texto que se repite varias veces.

Ejemplo:

Texto a se añadido: hola.

Texto que se repite: mundo

Resultado esperado: hola. Mundo

1

1 Respuesta

74.300 pts. Experiencia en manejo de bases de datos Oracle,...

Prueba con esto:

@echo off
Setlocal EnableDelayedExpansion
del kkk.txt
if "%3" == "" goto ayuda
set cadorig=%~1
set cadsust=%~2
for /f "tokens=* delims=" %%i in (%3) do (set ANT=%%i&echo !ANT:%cadorig%=%cadsust%! >> kkk.txt)
goto fin
:ayuda
echo Reemplaza una cadena por otra en todo el contenido de un archivo
echo Formato: %0 cadorig cadsust archivo
echo Si las cadenas contienen espacios deben escribirse entrecomilladas
echo No funciona si la cadena original contiene un "=" o dobles comillas y no distingue mayusculas
echo El archivo corregido se deja en kkk.txt
echo Ejemplo:
echo %0 de DE kk.txt
:Fin

Lo salvas con un nombre, por ejemplo cambcar.bat, lo sitúas donde esté el archivo SQL (supongamos que fuera prueba.sql) y lo invocas desde una ventana CMD con (en tu ejemplo):

Cambcar mundo "hola. mundo" prueba.sql

El texto corregido lo dejaría en un archivo de nombre kkk.txt en la carpeta de trabajo.

Si no funciona como necesitas dínoslo y veremos que se puede hacer.

He puesto mi archivo sql en el mismo lugar en donde he colocado el archivo.bat, he ingresado al cmd y me he ubicado en el mismo lugar en donde están los dos archivos, una vez hecho esto he digitado el siguiente comando; tomando en cuenta que mis archivos se llaman:

reemplazar.bat

esquemapublico.sl

comando --> C:\Users\carmen\Desktop\prueba reemplazo > reemplazo mundo "hola.mundo" esquemapublico.sql

Pero se me presenta el siguiente error:

'reemplazo' is not recognized as an internal or external command,
operable program or batch file.

No sé si entendí mal le ejecución del ejercicio.

Gracias.

Entiendo que al bat le has llamado reemplazar.bat. Sin embargo parece que lo invocas como "reemplazo" y no como "reemplazar"

Cuanta razón, mil disculpas,

El ejercicio ha sido exitoso, quisiera hacer una consulta adicional,

En el caso de que desee agregar el mismo texto a dos palabras que se repiten por ejemplo:

palabras repetidas: mundo y ciudad

resultado esperado:

hola.mundo

hola.ciudad

para ello, debería ejecutar el mismo comando pero añadiendo la siguiente palabra separada por una coma? Así:

$ reemplazar mundo, ciudad "hola.mundo" esquemapublico.sql

O como sería en ese caso???

Adicional a esto al ejecutar la parte inicial que por cierto si me ha funcionado, pero se me presenta el siguiente error.

Could Not Find C:\Users\TECSINFO\Desktop\prueba reemplazo\kkk.txt

Desde ya agradezco por la ayuda brindada :) .

No, no es tan listo el bat. Tendrías que ejecutarlo dos veces, una como:

Reemplazar mundo hola.mundo esquemapublico.sql

Y otra como:

Reemplazar ciudad hola.ciudad esquemapublico.sql

(Las comillas solo son necesarias si alguna de las cadenas tiene espacios, si es hola. Mundo sin espacios no hace falta)

En cuanto al mensaje "Could Not Find..." sale la primera vez como consecuencia del comando "del kkk.txt" porque inicialmente no existía. Para evitar ese mensaje sustituye ese comando (tercera línea del bat) por este "del /q kkk.txt"

Ya listo, muchísimas gracias por toda la información, me ha sido de gran utilidad y mi problema quedaría resuelto, cualquier inquietud estaré por este medio nuevamente.

:D Saludos cordiales.

Respondo a esto porque si no lo hago sigo teniendo una respuesta pendiente, según la página. Me alegro de que te haya servido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas