Título: [batch] Cambiar una ip por otra (petición) Publicado por: kanfalc en 18 Octubre 2010, 17:07 pm 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 Título: Re: [batch] Cambiar una ip por otra (petición) Publicado por: Shell Root en 18 Octubre 2010, 19:27 pm Mostrad el script que tienes.
Título: Re: [batch] Cambiar una ip por otra (petición) Publicado por: flony en 19 Octubre 2010, 13:25 pm ;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 Título: Re: [batch] Cambiar una ip por otra (petición) Publicado por: kanfalc en 19 Octubre 2010, 13:44 pm @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 |