Modificar texto desde batch

Necesito crear un .bat que modifica la url que se encuentra en un archivo .ini.
No se si se puede poner como una condición, que si esta tal dirección ponga una y sino ponga otra.
El tema es que en el .ini la dirección tiene que poder cambiarse entre dos opciones
O sea, yo ejecuto el .bat y comprueba si esta la dirección 1, pone la 2 y si esta la dirección 2 pone la 1.

1 respuesta

Respuesta
1
He estado un ratito pensando en el problema que me planteas y me surge una duda:
Si en el archivo .ini que quieres tratar están las dos direcciones 1 y 2, ¿quieres qué donde ponga la dirección 1 se cambie por la 2 y donde pone la 2 se cambie por la 1?
Si es así todavía no se me ocurre bien como.
Lo que sí tengo es un BAT para cambiar una cadena por otra en cualquier archivo. No sé si eso te vale de algo pero te lo dejo aquí:
@echo off
Setlocal EnableDelayedExpansion
if "%3" == "" goto ayuda
if not exist %3 goto error
set cadorig=%1
set cadorig=%cadorig:"=%
set cadsust=%2
set cadsust=%cadsust:"=%
for /f "tokens=* delims=" %%i in (%3) do (set ANT=%%i&echo !ANT:%cadorig%=%cadsust%! >>kk_tmp.txt)
copy /y kk_temp.txt %3
del /q kk_temp.txt
goto fin
:Error
Echo No existe el archivo %3
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 "="
Echo Ejemplo:
echo %0 de DE kk.txt
:Fin
Este BAT tiene el problema de que elimina las líneas en blanco y no he conseguido resolverlo.
De todas formas voy a seguir pensando en el asunto por si se me ocurre algo.
Saludos,
GGG
Muchas gracias por la respuesta.
El tema es el siguiente:
Yo tengo un archivo ini por ejemplo que tiene esta linea:
url=xxx.com.ar:80
quiero que cuando ejecute el bat, si la url es url=xxx.com.ar:80 ponga url=xxx.com.ar:90
y si es url=xxx.com.ar:90 ponga url=xxx.com.ar:80
Con respecto al bat que enviaste, ¿eso toma del archivo kk.txt la cadena de y la convierte en DE? ¿O tengo que setear alguna variable?
Perdón la pregunta, pero no se de batch.
Gracias!
Para empezar no sé por qué se me ha duplicado la respuesta anterior. Supongo que habrá sido una actuación incorrecta por mi parte.
Efectivamente, en el ejemplo cambiaría en el archivo kk.txt todo lo que esté como "de" y lo sustituye por "DE".
Si salvas el texto que te pasé en un archivo y le llamas, por ejemplo, REMPLAZA.BAT para utilizarlo deberías escribir
REMPLAZA xxx.com.ar:80 xxx.com.ar:90 pepito.ini
y te sustituirá "xxx.com.ar:80" por "xxx.com.ar:90" en el archivo pepito.ini (según se dice en la ayuda no funciona bien si en las cadenas se incluye algún "=" por eso no lo he incluido
Estoy analizando una forma de hacer que previamente investigue si en el archivo existe una u otra de las cadenas a sustituir para intercambiar en la llamada los papeles de esas cadenas, pero todavía no lo tengo resuelto. Y tampoco he conseguido salvar el escollo de la eliminación de las líneas en blanco. No sé si, de momento, te servirá de algo.
Saludos,
GGG

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas