elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Comando WAIT
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Comando WAIT  (Leído 6,716 veces)
Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
[BATCH] Comando WAIT
« en: 29 Abril 2012, 20:56 pm »

Pues bueno, hice un comando que espera los segundos que necesites. Tambien se puede usar:
Código:
ping localhost -n (Numero de segundos) >nul
Pero ultimamente hice programas que esperan mucho, y al final se me ralentizaba el ordenador, y creo que pasa por que ping envia bits, y usando localhost -n creo que te los envias a ti mismo hasta parar tu ordenador. Aqui esta el codigo, es copiarlo y pegarlo en un bloc de notas y guardarlo como "WAIT.BAT" en "C:\Windows\System32". Despues para usarlo solo es:
Código:
call wait (Numero de segundos)
Espero que os sea util. Estoy por solucionar el tema del "call". Si no lo usas asi al acabar de ejcutarse el comando se cierra el programa.
Código:
@ECHO OFF
SET CONTADOR=0
SET TIEMPO4=%TIME:~9,2%
:1
SET TIEMPO5=
SET TIEMPO6=
SET TIEMPO7=
SET TIEMPO1=%TIME:~0,2%
IF %TIEMPO1% LEQ 9 (SET TIEMPO1=%TIEMPO1:~1,2%)
SET TIEMPO2=%TIME:~3,2%
IF %TIEMPO2% LEQ 9 (SET TIEMPO2=%TIEMPO2:~1,2%)
SET TIEMPO3=%TIME:~6,2%
IF %TIEMPO3% LEQ 9 (SET TIEMPO3=%TIEMPO3:~1,2%)
IF %TIEMPO3%==59 (SET TIEMPO3=0
GOTO MINUTOS) else SET /A TIEMPO3=%TIEMPO3%+1
GOTO CICLO
:MINUTOS
IF %TIEMPO2%==59 (SET TIEMPO2=0
GOTO HORAS) else SET /A TIEMPO2=%TIEMPO2%+1
GOTO CICLO
:HORAS
IF %TIEMPO1%==23 (SET TIEMPO1==0
GOTO CICLO) else SET /A TIEMPO1=%TIEMPO1%+1
:CICLO
IF %TIEMPO1% LEQ 9 (SET TIEMPO5=0)
IF %TIEMPO2% LEQ 9 (SET TIEMPO6=0)
IF %TIEMPO3% LEQ 9 (SET TIEMPO7=0)
IF %TIME:~6,2% LEQ 9 (SET TIEMPO8=%TIME:~6,1%) else SET TIEMPO8=%TIME:~6,2%
SET /A COMP=%TIEMPO3%-%TIEMPO8%
IF "%COMP%"=="-59" (GOTO 4)
IF %TIEMPO3% LSS %TIEMPO8% (SET /A TIEMPO3=%TIEMPO8%+1)
:4
IF "%TIME%"=="%TIEMPO5%%TIEMPO1%:%TIEMPO6%%TIEMPO2%:%TIEMPO7%%TIEMPO3%,%TIEMPO4%" (GOTO FIN) else GOTO CICLO
:FIN
SET /A CONTADOR=%CONTADOR%+1
IF %CONTADOR%==%* (exit /b) else goto 1
Corregi el codigo, y creo que arregle todos los errores. Ademas, el segundo es exacto, por que usa los milisegundos (Aunque algunos piensen que batch es muy lento y que a veces no llegaria en una comprobacion y a la siguiente se pasaria, yo lo probe en mi ordenador y hace 10 comprobaciones por milisegundo, asi que lo lento sera el ordenador, en todo caso.)


« Última modificación: 6 Mayo 2012, 15:57 pm por Meine programmen » En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: [BATCH] Comando WAIT
« Respuesta #1 en: 29 Abril 2012, 21:14 pm »

Comprueba si coincide? No debe coincidir siempre?
Código:
SET /A CONTADOR=0

WTF? No me lei el codigo entero pero no seria mas eficiente y simple no poner nada? Al final del codigo si no me equivoco lo compruebas. Si quitas las comprovaciones y quitas esa linea y sera mas eficiente (Batch ya es lento de por si) Y si no la puedes borrar es incorrecta me parece que seria:
Código:
SET Contador=0
set /a es para opeaciones matematicas...


En línea

El dia 3 de mayo esta cuenta sera borrada.
Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: [BATCH] Comando WAIT
« Respuesta #2 en: 29 Abril 2012, 21:22 pm »

No, no debe de coincidir siempre. No se si me explique bien. Lo que hace es medir un segundo usando la hora del sistema. Y respecto a la linea, es totalmente necesaria. Si no le asigno cero a la variable, fallaria el primer segundo, por que le faltaria un operando en la linea:
Código:
SET /A CONTADOR=%CONTADOR%+1
Y lo del /A, la verdad, me dio por ahi y no produce ningun error, asi que bueno, se podria quitar, o no.
En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

ELVJop

Desconectado Desconectado

Mensajes: 132



Ver Perfil
Re: [BATCH] Comando WAIT
« Respuesta #3 en: 29 Abril 2012, 21:43 pm »

Tu que hiciste el codigo explicame estas dos lineas:

SET TIEMPO5=%TIEMPO1%:%TIEMPO2%:%TIEMPO3%,%TIEMPO4%

IF %CONTADOR%==%* (exit /b) else goto 1
En línea

El dia 3 de mayo esta cuenta sera borrada.
Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: [BATCH] Comando WAIT
« Respuesta #4 en: 29 Abril 2012, 21:55 pm »

Encantado. La primera adapta el resultado al formato de la hora (Hora:minuto:segundo,milisegundo). En esa parte tiene un error que se arreglaria con:
Código:
IF %TIEMPO1% LEQ 9 (SET TIEMPO1=0%TIEMPO1%)
Y asi con tiempo2, tiempo3 y tiempo4.
La segunda linea sirve para el numero de segundos. %* seria el numero de segundos que hayas puesto (Mucho lio explicar el tema de los argumentos desde una PSP), y exit /b acaba el comando sin cerrar el programa.
En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [BATCH] Comando WAIT
« Respuesta #5 en: 29 Abril 2012, 22:05 pm »

Hola Meine programmen,

He probado el code varias veces consecutivas, Me dió un error típico al setear incorrectamente una variable, otras veces, al usar "Wait 5" pues tardaba infinitamente, no se detenia a los 5 segundos. Otras veces si que iba, Algún fallo hay por ahí en el code, si quieres revisarlo...

No he querido buscar el error, Porque he simplificado mucho tu code... No quiero chafar tu post, de verdad, Pero esto quizás te sirva para aprender:

Código
  1. @Echo OFF
  2. :: Wait.bat
  3. :: Wait [Segundos]
  4. FOR /L %%G IN (1,1,%1) DO (Ping -n 2 localhost >NUL || Exit /B 1)
  5. Exit /B 0

PD: Consume más recursos realizar todas esas operaciones sin descanso, que usar ping, No te marees por ese tema.

Saludos.
« Última modificación: 29 Abril 2012, 22:07 pm por EleKtro H@cker » En línea

Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: [BATCH] Comando WAIT
« Respuesta #6 en: 29 Abril 2012, 22:15 pm »

OWNED, OWNED y REOWNED. Y yo que creia haber hecho algo util  :xD Bueno, yo seguire usando el mio y le buscare los errores (Si no, no tendria sentido haber hecho un esfuerzo). El error ese tambien me ha pasado a mi, y deduzco que el error estara en los milisegundos, asi que tendre que poner algun tipo de margen de error (¿Serviria el comodin "?" en la unidad de los milisegundos?)
En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [BATCH] Comando WAIT
« Respuesta #7 en: 29 Abril 2012, 22:23 pm »

El error ese tambien me ha pasado a mi, y deduzco que el error estara en los milisegundos, asi que tendre que poner algun tipo de margen de error (¿Serviria el comodin "?" en la unidad de los milisegundos?)

Y porque no lo haces directamente sin milisegundos? xD Así te quitas ese problema... No se, De los milisegundos se puede prescindir...

un saludo
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: [BATCH] Comando WAIT
« Respuesta #8 en: 11 Mayo 2012, 21:51 pm »

yo nunca use ping sino choice
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comando AT (Batch) « 1 2 »
Scripting
MK-Ultra 13 16,701 Último mensaje 24 Enero 2008, 03:32 am
por 43H4FH44H45H4CH49H56H45H
Comando for [batch]
Scripting
kraszic 8 14,258 Último mensaje 8 Julio 2008, 12:56 pm
por kraszic
[BATCH] Bug comando for (eol)
Scripting
0x0309 2 6,113 Último mensaje 1 Abril 2009, 17:25 pm
por leogtz
[BATCH] Programar un batch con comando at
Scripting
WaAYa HaCK 5 4,681 Último mensaje 14 Septiembre 2011, 19:12 pm
por WaAYa HaCK
[Batch] Comando For / F
Scripting
Geormarsch 3 9,335 Último mensaje 10 Enero 2012, 21:19 pm
por leogtz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines