Test Foro de elhacker.net SMF 2.1

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 (dos) [Seleccionar]
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 (dos) [Seleccionar]
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

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
Cita de: 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
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í