Cronometro en BATCH

Iniciado por Dirpok, 9 Junio 2008, 16:33 PM

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

Dirpok

Hola.
Recien acabo de empezar con el batch, he echo una calculadora y 4 o 5 tonterias mas para aprender
pero.. como podria hacer un cronometro?
tengo un proyecto en mente de un cronometro y no se ni por donde empezar
comando sleep?
ping -n 127.0.0.1>nul ?

El proyecto sera un cronometro que con la tecla espacio empezará y con la misma parará el cronometro. habra un ranking de tiempos y con el tiempo ire añadiendo nuevas funciones para tener un cronometro sencillo y rapido y con todo lo necesario
Es mas que nada para los aficionados al cubo de rubik como yo, para poder cronometrar nuestros tiempos de forma muy muy rapida y sin programas pesados :P

Muchisimas gracias de antemano
Un cordial saludo

Dirpok.

leogtz

#1
Que empieces con cosas sencillas, no es ninguna tonteria.
Yo hace rato que estaba aprendiendo hice un cronometro sencillo en Batch, con cuenta ascendente y descendente.

PD : Yo no tengo el comando Sleep


Código (dos) [Seleccionar]
@echo off
Title Cronometro by RockoX
color d
:menu
cls
echo.
echo                   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                   º          Cronometro by RockoX 1.2        º
echo                   ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo.
echo.
echo                               1.-Cuenta ascendente
echo                               2.-Cuenta descendente
echo                               3.-Salir
echo.
echo.
echo.
set /p opc=                        Teclee el numero de la opcion dada:
if [%opc%]==[] cls & Echo                               No has puesto nada! & pause>nul & goto menu
if %opc%==1 goto asc
if %opc%==2 goto desc
if %opc%==3 goto salir
:asc
cls
color a

:Empezar
cls
Set /p Comenzar=Teclee un numero para empezar:
if ["%Comenzar%"]==[""] (
goto:Empezar
)
echo.
echo.

:Detencion
cls
set /p Detener=Indique el numero en el que parara:
if ["%detener%"]==[""] (
goto:Detencion
)

:inicio
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                                         %Comenzar%
ping -n 1,5 localhost>nul
set /a Comenzar=%Comenzar%+1
if %Comenzar%==%Detener% goto terminado
goto inicio
:terminado
cls
msg * La cuenta ha terminado...
pause > nul
goto menu
:desc
color b
cls
set /p iniciar=Teclee el numero para empezar:
cls
set uno=1
:empieza
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                                       %iniciar%
set /a iniciar=%iniciar%-%uno%
ping -n 1.5 localhost>nul
if %iniciar%==0 goto terminado
goto empieza
:salir
msg * by RockoX!
exit



Con respecto a lo de empezar con la tecla Espacio del teclado, no creo que sea posible.
Pero puedes detener el Batch en Ejecucion con  CTRL + S


Saludos
:)


Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Dirpok

#2
 :D :D Muchisimas gracias!! buen programa
Yo exactamente quiero una cosa rapida, que al apretar alguna tecla (ya que con espacio no se puede) empieze a cronometrar, y con otra lo mismo
Todo esto y mucho mas lo hare si me das el permiso de basarme en tu programa para hacer mi cronometro para los Fans de Rubik :D:D
en el menú pondre Basado en el cronometro de RockoX o lo que creas apropiado y en el leeme te dare las gracias ;)

Muchisimas gracias de antemano.

PD: El programa en un principio estara en catalan y castellano. pero tengo en mente traducirlo al ingles y al frances / italiano / aleman o mas lenguas si encuentro a gente :D

leogtz

Naaa, no hay de que Dirpok, estamos para ayudar  :)

Saludos!
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Dirpok

#4
Muchisimas gracias! :D
si quieres agregame y te mantendre informado sobre el programa

Oye. esto tarda menos que un segundo :S probe de ponerlo en 2.0 y tarda mas que un segundo :(
Hay alguna manera de ver decimas?

leogtz

Los ping -n

Cambialos por Ping -n 2

Que masomenos corresponderia a 1 segundo..
Saludos
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

carlitos.dll

... espera, se me está ocurriendo una forma de hacerlo, pido un poco de tiempo.

Nota: RockoX, está bueno el code, eso si, presionas por ejemplo un número mayor que 3, no lo valida.


carlitos.dll

Listo. Espero que sirva Dirpock.


::CarlitoS.dll
@echo off
color 70
set /a cont =0
pause
:time
set mirror1=%time:~-4%
set /a mirror1=%mirror1:~0,1%
:increment
set mirror2=%time:~-4%
set /a mirror2=%mirror2:~0,1%
if not %mirror2%==%mirror1% (goto cont)
goto increment
:cont
set /a cont +=1
cls
echo CRON: %cont%
goto time
::CarlitoS.dll


MK-Ultra

#8
Asi es como podes hacer que el cronometro empiese al presionar una tecla:
Código (dos) [Seleccionar]

@echo off
Title Cronometro by RockoX / Modificado By Arkangel
color d
:menu
cls
echo.
echo                   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                   º          Cronometro by RockoX 1.2        º
echo                   ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo.
echo.
echo                               1.-Cuenta ascendente
echo                               2.-Cuenta descendente
echo                               3.-Salir
echo.
echo.
echo.
echo                              -.Modificado by Arkangel.-
echo.
echo.
set /p opc=                        Teclee el numero de la opcion dada:
if [%opc%]==[] cls & Echo                               No has puesto nada! & pause>nul & goto menu
if %opc%==1 goto asc
if %opc%==2 goto desc
if %opc%==3 goto salir
:asc
cls
color a

:Empezar
cls
Set /p Comenzar=Teclee un numero para empezar:
if ["%Comenzar%"]==[""] (
goto:Empezar
)
echo.
echo.

:Detencion
cls
set /p Detener=Indique el numero en el que parara:
if ["%detener%"]==[""] (
goto:Detencion
)


:listo
cls
echo.
echo.
echo.
echo        El cronometro esta listo, presione una tecla para empezar...
echo.
echo.
echo.
pause > nul
if %opc%==1 goto inicio
if %opc%==2 goto empieza


:inicio
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                                         %Comenzar%
ping -n 1,5 localhost>nul
set /a Comenzar=%Comenzar%+1
if %Comenzar%==%Detener% goto terminado
goto inicio

:terminado
cls
msg * La cuenta ha terminado...
pause > nul
goto menu


:desc
color b
cls
set /p iniciar=Teclee el numero para empezar:
cls
set uno=1
goto listo


:empieza
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                                       %iniciar%
set /a iniciar=%iniciar%-%uno%
ping -n 1.5 localhost>nul
if %iniciar%==0 goto terminado
goto empieza
:salir
msg * by RockoX ^& by Arkangel!
exit


Saludos  ;)
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

leogtz

 :D  ;D
Aqui una pequeña modificacion, la cuenta ya no corre tan rapido, y corregido por si el usuario introduce algo que no se le pide :

Código (dos) [Seleccionar]
@echo off
Title Cronometro by RockoX / Modificado By Arkangel
color d
:menu
cls
echo.
echo                   ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo                   º          Cronometro by RockoX 1.2        º
echo                   ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo.
echo.
echo                               1.-Cuenta ascendente
echo                               2.-Cuenta descendente
echo                               3.-Salir
echo.
echo.
echo.
echo                              -.Modificado by Arkangel.-
echo.
echo.
set /p opc=                        Teclee el numero de la opcion dada:
if [%opc%]==[] cls & Echo                               No has puesto nada! & pause>nul & goto menu
if %opc%==1 goto asc
if %opc%==2 goto desc
if %opc%==3 goto salir
if %opc% LSS 1 (
goto:menu
)
if %opc% GTR 3 (
goto:menu
)

:asc
cls
color a

:Empezar
cls
Set /p Comenzar=Teclee un numero para empezar:
if ["%Comenzar%"]==[""] (
goto:Empezar
)
echo.
echo.

:Detencion
cls
set /p Detener=Indique el numero en el que parara:
if ["%detener%"]==[""] (
goto:Detencion
)


:listo
cls
echo.
echo.
echo.
echo        El cronometro esta listo, presione una tecla para empezar...
echo.
echo.
echo.
pause > nul
if %opc%==1 goto inicio
if %opc%==2 goto empieza



:inicio
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                                         %Comenzar%
ping -n 1,5 localhost>nul
set /a Comenzar=%Comenzar%+1
if %Comenzar%==%Detener% goto terminado
goto inicio

:terminado
cls
msg * La cuenta ha terminado...
pause > nul
goto menu


:desc
color b
cls
set /p iniciar=Teclee el numero para empezar:
cls
set uno=1
goto listo


:empieza
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                                       %iniciar%
set /a iniciar=%iniciar%-%uno%
ping -n 2 localhost>nul
if %iniciar%==0 goto terminado
goto empieza
:salir
msg * by RockoX ^& by Arkangel!
exit
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com