Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: StreaK en 8 Abril 2010, 18:53 pm



Título: Batch que haga un ping
Publicado por: StreaK en 8 Abril 2010, 18:53 pm
Buenas,

Tengo una duda, me gustaría crear un programita que al ejecutarlo hiciera un ping a una máquina para comprobar si está en red y si es así ejecutar una serie de instrucciones.

Alguien que domine?

Gracias!! StreaK


Título: Re: Batch que haga un ping
Publicado por: leogtz en 8 Abril 2010, 21:58 pm
Código
  1. ping google.com > nul 2>&1 && (echo Online) || (echo Offline)


Título: Re: Batch que haga un ping
Publicado por: LauBuru en 8 Abril 2010, 22:04 pm
El %errorlevel% varia si esta ON u OFF el dominio? pense que solo era si se ejecutaba correctamente u habia algun error...


Un saludo ^^


Título: Re: Batch que haga un ping
Publicado por: leogtz en 8 Abril 2010, 22:06 pm
El errorlevel depende de la aplicación que se trate, hay comandos que utilizan hasta 4 tipos de errores diferentes, en este caso el ping solo devuelve 0 o 1, por eso es fácil tratarlo con ejecución condicional.


Título: Re: Batch que haga un ping
Publicado por: LauBuru en 9 Abril 2010, 00:29 am
Sep, ya sabia hablaba en el caso particular del ping, que haunque el dominio es OFF el comando se ejecuta correctamente hay esta mi confusion

Código
  1. ping 0.0.0.1 & echo %errorlevel%

Por ejemplo me da 0 pero el dominio no existe


Título: Re: Batch que haga un ping
Publicado por: StreaK en 9 Abril 2010, 10:40 am
Buenas! Gracias por la respuesta. Hace tiempo que no toco batch y me cuesta recordar estos detalles.

Decís que al ejecutar ping desvuelve 0 o 1 dependiendo del resultado. Me gustaría meter el resultado en una variable para luego hacer comprobaciones.

Gente gracias por la ayuda  :)


Título: Re: Batch que haga un ping
Publicado por: StreaK en 9 Abril 2010, 12:08 pm
Mirando por ahí he conseguido lo siguiente

ping google.es > nul 2>&1 && (set "valor=1") || (set "valor=0")
echo %valor%
if %valor%==1 goto var1
if %valor%==0 goto var2

Saludos! StreaK


Título: Re: Batch que haga un ping
Publicado por: ---saster--- en 9 Abril 2010, 12:12 pm
lo puedes hacer mas sencillo

Código:
ping google.es > nul 2>&1 && (goto var1) || (goto var2)

sin necesidad de la variable


Título: Re: Batch que haga un ping
Publicado por: xassiz_ en 10 Abril 2010, 01:15 am
Mirando por ahí he conseguido lo siguiente

ping google.es > nul 2>&1 && (set "valor=1") || (set "valor=0")
echo %valor%
if %valor%==1 goto var1
if %valor%==0 goto var2

Saludos! StreaK
No necesitas setear ningún valor. La ejecución del comando queda automaticamente en la variable especial errorlevel.


Título: Re: Batch que haga un ping
Publicado por: StreaK en 10 Abril 2010, 12:41 pm
Gracias gracias  ;D si que es más sencillo así