Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: pandozales12 en 3 Julio 2011, 21:20 pm



Título: Problema con batch
Publicado por: pandozales12 en 3 Julio 2011, 21:20 pm
Aver si podeis ayudarme. Tengo esto:
Código
  1. rem CUENTA ATRAS
  2.  
  3. :Cuenta
  4. set/p tiempo=Cuantos minutos faltan para el lanzamiento?  
  5. set/a tiempo=%tiempo%*60    
  6. rem set hora=%time:~0,2%
  7. rem set min=%time:~3,2%
  8. rem set seg=%time:~6,2%
  9. set/a temp=(%time:~0,2%*3600)+(%time:~3,2%*60)+(%time:~6,2%)
  10. set/a tiempo2=%temp%+%tiempo%
  11. goto compro
  12.  
  13. :compro
  14. set/a a=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
  15. if %a%==%tiempo2% goto mision
  16. set/a cuenta=%tiempo2%-%a%
  17. echo Tiempo que falta para lanzamiento: T-%cuenta%
  18. cls
  19. goto compro
  20.  
Bale el codigo funciona bien pero hay un pequeño detalle que bastante molesto,
cuando se ejecuta el cls borra la pantalla todo el rato y hace un efecto muy molesto para la vista. He pensado que diciendo al programa que cuando la variable %cuenta% cambie haga un cls. Pero no consigo programarlo, alguien puede ayudarme?


Título: Re: Problema con bath
Publicado por: SuperDraco en 3 Julio 2011, 21:32 pm
Solucionado  :-*


Código
  1. @echo off
  2.  
  3. REM CUENTA ATRAS
  4.  
  5. REM Modificado By PiToLoKo
  6. REM Visita Foro.ElHacker.NET
  7.  
  8. :Cuenta
  9. set/p tiempo=Cuantos minutos faltan para el lanzamiento?
  10. set/a tiempo=%tiempo%*60
  11. cls
  12.  
  13. rem set hora=%time:~0,2%
  14. rem set min=%time:~3,2%
  15. rem set seg=%time:~6,2%
  16.  
  17. set/a temp=(%time:~0,2%*3600)+(%time:~3,2%*60)+(%time:~6,2%)
  18. set/a tiempo2=%temp%+%tiempo%
  19. goto :compro
  20.  
  21. :compro
  22. set/a a=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
  23. if %a%==%tiempo2% goto :mision
  24. set/a cuenta=%tiempo2%-%a%
  25. echo Tiempo que falta para lanzamiento: T-
  26.  
  27.  
  28. :compro2
  29. set/a a=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
  30. if %a%==%tiempo2% goto :mision
  31. set/a cuenta=%tiempo2%-%a%
  32. colous 15 0 38,01 "%cuenta%     "
  33. Colous cursoroff
  34. goto :compro2
  35.  


EDITO: Correjido


Título: Re: Problema con bath
Publicado por: pandozales12 en 3 Julio 2011, 21:35 pm
Si eso ya lo probe yo, solo que con sleep 1, pero me he fijado y la cuenta la llevava mal, derepente se comia dos numeros o aceleraba. Al final siempre hacia el tiempo justo perfecto pero me interesa que haga la cuenta bien y ordenadamente. De todas formas gracias si no consigo mi objetivo lo pondre asi.


Título: Re: Problema con bath
Publicado por: SuperDraco en 3 Julio 2011, 21:37 pm
Iba a decirte que si se come algun numero no improtaba porque el tiempo final iba a ser exacto, pero ya lo has dicho.. ok veré que puedo hacer...

EDITO: ya que usas el sleep, te importa mucho usar otras herramientas de terceros?


Título: Re: Problema con bath
Publicado por: pandozales12 en 3 Julio 2011, 21:38 pm
Ok, gracias de nuebo


Título: Re: Problema con bath
Publicado por: pandozales12 en 3 Julio 2011, 21:46 pm
No, no me importa


Título: Re: Problema con bath
Publicado por: SuperDraco en 3 Julio 2011, 22:05 pm
Bien, he modificado el code, arriba.

Necesitas el Colous (obligatoriamente version 5, anterior no hace lo mismo que la 5)

http://www.mediafire.com/?67dzoail165z22e


El código parece que ha quedado sin que se vean molestias visuales. Dime que te parece :/ si lo ves bien y eso... xD creo que no puedo mejorarlo más.

Por otro lado, he visto un error en tu batch que no viene al caso, te aviso de que a veces me sale esto:

Código:
Número no válido . Las constantes numéricas son decimales(17),hexadecimales (0x11), u octales (021).

saludos


PD: el color del numero lo puedes cambiar en este valor:

colous 15 "%cuenta%     "





Título: Re: Problema con bath
Publicado por: pandozales12 en 3 Julio 2011, 22:58 pm
Muchas gracias ahora mismo lo pruebo y te digo.