Cronometro en BATCH

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

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

carlitos.dll

¿Algun comentario para mi code? En mi máquina funciona perfectamente.

leogtz

A mi tu code tambien me funciona perfecto.  :)
Código (perl) [Seleccionar]

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

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

Crazy.sx

Yo me compraria un reloj digital con cronometro  :xD

Naaa, es solo un poco de humor. Sinceramente estos códigos estan muy buenos. Y es bueno que estes aprendiendo esto Dirpok ya que te motivara aprender otros lenguajes.

Y de a poco viene tomando vuelo el scripting batch... ¿No RockoX? Veo que sabes mucho :xD. Aguante el batch jeje.

Saludos amigos. ;)
Destruir K. LOL

SmartGenius

yo digo lo mismo que lukhardy...muy buenos codes, y que viva el batch...

Saludos.


najmuddin

Soy muy nuevo aquí, y veo que la comunidad crece... Yo tambien digo "Aguante Batch" y "Aguante a este Foro". No se imaginan lo útil que ha resultado entrar a esta Casa, espero poder aportar algo...
-DARAKknight-


kraszic

Buenas, he estado mirandome el code porq me interesaba y he leido todos los coment sobre como hacer para que el reloj ascendente se parara al pulsar alguna tecla.

Pues bien, con alguna modificacion, creo q he conseguido a medias lo q buscaba.

Este es el code solo del reloj ascendente. Lo q he hecho es utilizar otro bat para pararlo por medio de un comando for en el bucle.
Bueno, mejor provarlo y mirarlo q os aclarareis mejor, como veis el code es bastante simple y seguramente se puede hacer mas corto.

Código (dos) [Seleccionar]

@echo off
set /p ini=Introduzca un numero para empezar la cuenta:
if "%ini%"=="" set ini=1
if %ini% LSS 1 goto error
cls
echo El cronometro esta listo para empezar.
echo Para detener el cronometro pulse cualquier tecla en el bat que se abre.
echo.
echo.
echo @echo off > detencion.bat
echo title Detencion >> detencion.bat
echo echo Funcionando ^> detener.txt >> detencion.bat
echo echo Pulse cualquier tecla para detener el cronometro. >> detencion.bat
echo pause^>nul >> detencion.bat
echo echo Detener ^> detener.txt >> detencion.bat
echo exit >> detencion.bat

echo Pulse cualquier tecla para que empiece la cuenta.
pause>nul
start detencion.bat

:inicio
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                                         %ini%
ping -n 2 localhost>nul
for /f "tokens=*" %%b in (detener.txt) do set var=%%b
if %var%==Detener goto cuter
set /a ini=%ini%+1
goto inicio

:cuter
del /q detencion.bat
del /q detener.txt
echo.
echo.
echo.
echo La cuenta ha finalizado.
echo Pulse cualquier tecla para volver al menu.
pause>nul
goto menu

:error
cls
echo Introduzca un numero valido.
echo.
echo.
echo Pulse cualquier tecla para continuar.
pause>nul
goto asc



La duda q tengo yo es q con mi code, el reloj se retrasa 3 seg cada minuto respecto del tiempo q tenia q ser.
Entonces lo q he probado es a meter ping -n 1.9 o ping -n 1,9 pero todo esto no me funciona, hay alguna forma para q funcione y los segundos vayan exactos?

saludos

carlitos.dll

He actualizado el code del cronómetro:


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


Dirpok

Muchisimas gracias!
me ha servido mucho para aprender un poquito mas
he estado un poco parado este tiempo. xD es mas, no me acordaba ya de este post

Carlitos.dll

muy bueno el tuyo. la verdad es que no lo entiendo, pero tampoco es que sepa mucho sobre batch, hay comandos que aun no he utilizado

de tu forma, se podria hacer, pero que con otra tecla se parase el cronometro?
alguna forma de ver decimas?

1 saludo!

carlitos.dll

no es tan tan exacto, pero yo lo he probado con reloj en mano.
Funciona así:

considera la variable %time%
Ejemplo:
9:32:57,50

y extrae el cuarto carácter contando desde el final.
en este caso el 7

Luego realiza la misma tarea, si el carácter ha cambiado, incrementa en 1 el contador y lo muestra, si no, vuelve a crear otro "espejo" y comparar hasta que se cambie ese carácter. (Todo va en los MHz :D)




Dirpok

Ok, bueno me sirve!
jaja gracias

oye y para pararlo con una tecla? (ya que es para cronometrar tiempos mi proyecto)
el de kraszic no me funciona y me lia tanta cosa jajaja

for /f "tokens=*" %%b in (detener.txt) do set var=%%b
if %var%==Detener goto cuter
set /a ini=%ini%+1

supongo que es esto no?

Mi idea es que se guarde en un archivo que luego se interpretara en el batch para un ranking.
He leido en otro post que hay un codigo para leer un texto de un archivo, pero me lee la ultima linea.
Si no hay solucion he pensado en hacer un archivo para kada tiempo (10 archivos) del mas rapido al mas lento.

@echo off
:start
set /p lin=Ingrese la linea a descubrir:
set txt=hola.txt
for /f "tokens=1 skip=%lin%" %%a in (%txt%) do set n=%%a
set/a var=%n%-1
echo La linea nro. %lin% contiene :  %n%
echo.
echo.
pause>nul
goto start

Que tengo que cambiar para que me lea la linea que quiera (aunque despues no se como hacer que el programa guarde los tiempos en orden,  kreo que se como hacerlo si es con un archivo para cada tiempo.

Bueno muchisimas gracias y un saludo!