[batch] Cambiar una ip por otra (petición)

Iniciado por kanfalc, 18 Octubre 2010, 17:07 PM

0 Miembros y 1 Visitante están viendo este tema.

kanfalc

En batch:

Bueno estimados lo que estoy buscando es: si es que alguien me puede explicar como se hace un reemplazo de numero en un texto cualquiera

yo quiero que un script haga algo asi

"ingrese la ip antigua (grabo en "a")

ingrese ip nueva ( grabo en "b")

reviso si b es diferente de a

abro texto

busco ip antigua (a)

cambio ip antigua (a) por ip nueva (b) sin modificar el demas texto

cambio de directorio

repito proceso"





Si es que alguien me puede ayudar con esto, por que como ven soy nuevo haciendo script en batch y esto me serviria mucho para optimizar procesos en mi trabajo

he intentado hacerlo yo pero sin resutados

Saludos






Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

flony

 ;D no es tan dificil pero si pones un avance del code haci no me siento un  :¬¬ te ayudo... ;D
vas a ver q no es para nada imposible
si un problema no tiene solucion entonces no es un problema...es algo inevitable

kanfalc

#3
@echo off
setlocal enabledelayedexpansion
set a=11.11.11.11
set /p b=Ingrese Ip del servidor:
for /f "tokens=* delims=" %%x in ('type "texto.txt"') do (
set linea=%%x
set linea=!linea:%a%=%b%!
call :show !linea!
)
goto:eof
:show
echo %* >> "tem_texto.txt"


donde 11.11.11.11 es la ip que le puse al texto base (texto.txt) y %b% es la que le quería poner

este scrip me funcionó de maravillas el único problemas fue que al correr varios de estos en el mismo bat no me leia todo el texto de cada archivo y alcanzaba a editar solo la primera linea  

lo que decidí hacer fue: crear un bat que llamara a los demas y heredara la siguiente linea(en negrita) tambien a los demas(comando call "directorio/archivo.bat").

@echo off
setlocal enabledelayedexpansion             %importatisimo%
set a=11.11.11.11
set /p b=Ingrese Ip del servidor:


del "C:\nueva carpeta\texto1.txt"
del "C:\nueva carpeta\texto2.txt"
del "C:\nueva carpeta\texto3.txt"
del "C:\nueva carpeta\texto4.txt"
echo.
echo         borrando archivos antiguos    %para no escribir dos veces el texto%
pause >nul

call "C:\nueva carpeta\script1.bat"
echo           texto1 editado!!!


call "C:\nueva carpeta\script2.bat"
echo           texto1 editado!!!


call "C:\nueva carpeta\script3.bat"
echo           texto1 editado!!!



call "C:\nueva carpeta\script4.bat"
echo           texto1 editado!!!
cls
color 0E
echo.
echo.
echo.
echo       Presione un tecla para terminar script

pause  > nul

exit


eso me funcionó de maravillas, puesto que al crear mas script donde necesite editar mas archivos solo tengo que poner:

call "Directorio\archivo.bat" y esto hara correr el scrip de acuerdo a los datos ingresados en el script principal, ademas no se cortan los procesos de copiado y edición

Si a alguien le sirvió, que bueno

Cualquier duda solo pregunten

Saludos