Título: Batch, reiniciar programa luego que detecte que no haya Internet Publicado por: BALTA00 en 19 Abril 2016, 05:11 am Buenas noches, tengo un programa que hace función de Proxy, trabaja perfecto, pero cuando tengo problemas de conexión si se me va y llega el Internet el proxy deja de reconectar, para evitar eso, hice lo siguiente:
Código: @echo off Se supone que debería chequear cada minuto si hay conexión, sino hay conexión pasa a la sentencia reiniciar, que ahí debería chequear cuando llegue la conexión, y en lo que llegue debería matar el proceso eth-proxy.exe y volverlo a iniciar, y continuar chequeando si hay o no conexión, el detalle es que no me funciona, simplemente abra y cierra el proceso de manera continua, ¿Qué estoy haciendo mal? Título: Re: Batch, reiniciar programa luego que detecte que no haya Internet Publicado por: Zomkar en 19 Abril 2016, 06:12 am Usa el programador de tareas mejor para ejecutar cada X tiempo. Para saber si hay conexion puedes usar goto+if+https://stackoverflow.com/questions/9329749/batch-errorlevel-ping-response (https://stackoverflow.com/questions/9329749/batch-errorlevel-ping-response)
Aparte, no habrá alguna forma de que los ping vayan a traves del proxy? O comprobar de otra forma que use el proxy? Asi no matarias el proceso cuando no fuese necesario. Título: Re: Batch, reiniciar programa luego que detecte que no haya Internet Publicado por: BALTA00 en 19 Abril 2016, 06:14 am Usa el programador de tareas mejor para ejecutar cada X tiempo. Para saber si hay conexion puedes usar goto+if+https://stackoverflow.com/questions/9329749/batch-errorlevel-ping-response (https://stackoverflow.com/questions/9329749/batch-errorlevel-ping-response) Aparte, no habrá alguna forma de que los ping vayan a traves del proxy? O comprobar de otra forma que use el proxy? Asi no matarias el proceso cuando no fuese necesario. Encontré una forma, acabo de editar el post, ahora necesito ayuda porque no funciona lo que hice... Título: Re: Batch, reiniciar programa luego que detecte que no haya Internet Publicado por: Zomkar en 19 Abril 2016, 06:20 am No veo fallos, pero puedes probar a detectar donde están usando pause y echo, si no se llega a ejecutar o falla en algun punto. Si es otro problema, que error te da?
Por otra parte la cosa seria: Código: :comprobar conexion De esta forma simplificas el codigo, solo hay que comprobar conexion una vez. La funcion que pusiste que detecta si ya hay internet la quitaria ya que si no hay internet tampoco es un problema que mates el proceso. PD: he visto algo Código: @find /C "La solicitud de ping no pudo encontrar el host" testigo.txt > null Esto no funcionará si ping da este mensaje: Código: Tiempo de espera agotado para esta solicitud. Deberías usar el que tienes justo debajo el de "recibidos = 0" que tiene REM delante (comentario). Aparte quita los "set ERRORLEVEL=", no es necesario y se desaconseja: Citar You should never attempt to write to the %ERRORLEVEL% variable because the value you set will then take precedence over the internal ERRORLEVEL. http://ss64.com/nt/errorlevel.html (http://ss64.com/nt/errorlevel.html)Título: Re: Batch, reiniciar programa luego que detecte que no haya Internet Publicado por: BALTA00 en 19 Abril 2016, 08:19 am Así como dices:
Código: @echo off funciona, solo que cuando no hay conexión cierra y abre el proceso constantemente, no es en realidad un problema muy grande, pero es medio incómodo. Título: Re: Batch, reiniciar programa luego que detecte que no haya Internet Publicado por: Zomkar en 19 Abril 2016, 22:44 pm Mmmm y si le aumentas el valor de:
Código: timeout /t 3 /nobreak Y sino, puedes poner un ping -n >nul. O más facil, al final de :reiniciar pon goto continua. Si quieres que realmente solo lo mate en cuanto vuelva la conexion si que tendrias que hacerlo de una forma similar a como lo tenias. :reiniciar esperar X segundos Si no hay conexion goto reiniciar matar tarea goto inicio El resto de codigo seria el mismo, tendrias que volver a copiar la funcion comprobar conexion aqui, así creas un bucle del que se sale si hay conexion. Título: Re: Batch, reiniciar programa luego que detecte que no haya Internet Publicado por: Eleкtro en 30 Abril 2016, 14:37 pm Citar Código
Código
En resumen, debes eliminar esa variable, por que aparte de no necesitarla tampoco le estás dando ningún uso (ni podrías dárselo correctamente con la intención de sustituir la variable dinámica y aun así esperar obtener el mismo valor...) Saludos. |