Problema con batch

Iniciado por pandozales12, 3 Julio 2011, 21:20 PM

0 Miembros y 1 Visitante están viendo este tema.

pandozales12

Aver si podeis ayudarme. Tengo esto:
Código (dos) [Seleccionar]
rem CUENTA ATRAS

:Cuenta
set/p tiempo=Cuantos minutos faltan para el lanzamiento?  
set/a tiempo=%tiempo%*60    
rem set hora=%time:~0,2%
rem set min=%time:~3,2%
rem set seg=%time:~6,2%
set/a temp=(%time:~0,2%*3600)+(%time:~3,2%*60)+(%time:~6,2%)
set/a tiempo2=%temp%+%tiempo%
goto compro

:compro
set/a a=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
if %a%==%tiempo2% goto mision
set/a cuenta=%tiempo2%-%a%
echo Tiempo que falta para lanzamiento: T-%cuenta%
cls
goto compro

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?

SuperDraco

#1
Solucionado  :-*


Código (dos) [Seleccionar]
@echo off

REM CUENTA ATRAS

REM Modificado By PiToLoKo
REM Visita Foro.ElHacker.NET

:Cuenta
set/p tiempo=Cuantos minutos faltan para el lanzamiento?
set/a tiempo=%tiempo%*60
cls
 
rem set hora=%time:~0,2%
rem set min=%time:~3,2%
rem set seg=%time:~6,2%

set/a temp=(%time:~0,2%*3600)+(%time:~3,2%*60)+(%time:~6,2%)
set/a tiempo2=%temp%+%tiempo%
goto :compro

:compro
set/a a=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
if %a%==%tiempo2% goto :mision
set/a cuenta=%tiempo2%-%a%
echo Tiempo que falta para lanzamiento: T-


:compro2
set/a a=%time:~0,2%*3600+%time:~3,2%*60+%time:~6,2%
if %a%==%tiempo2% goto :mision
set/a cuenta=%tiempo2%-%a%
colous 15 0 38,01 "%cuenta%     "
echo+
Colous cursoroff
goto :compro2



EDITO: Correjido
No he vuelto, solo estoy de paso.

pandozales12

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.

SuperDraco

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?
No he vuelto, solo estoy de paso.

pandozales12


pandozales12


SuperDraco

#6
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:

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%     "



No he vuelto, solo estoy de paso.

pandozales12

Muchas gracias ahora mismo lo pruebo y te digo.