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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Duda] BATCH : Cronometro con Historial de Tiempo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] BATCH : Cronometro con Historial de Tiempo  (Leído 3,351 veces)
M401

Desconectado Desconectado

Mensajes: 119


:$


Ver Perfil
[Duda] BATCH : Cronometro con Historial de Tiempo
« en: 7 Abril 2019, 19:26 pm »

 Buenas! ;D

 Hace tiempo estaba buscando la forma de crear un historial de tiempo con Batch Para cada dia, Pero no pude hacerlo  :(.

 Queria que a cada segundo que pasa en el cronometro, Lo registre dentro de un archivo de texto pero que no se multiplique uno bajo el otro (Que es por eso que no pude), Alguien me dice como puedo implementarselo a mi cronometro?.

 Aqui abajo les dejo el script y me dicen que tal está.  :huh:

------Inicio Del Codigo-------------------------------------------------------------------------

@echo off
@mode con cols=30 lines=10
cls
color 0a

set/a s=1

echo.
echo Para Pausar El Cronometro
echo Utiliza (Ctrl+C)
echo.
echo Pulsa cualquier tecla para
echo iniciar
pause>nul

:inicio
cls
echo.
echo       °±² Cronometro ²±°
echo.
echo Segundos : %s%
echo Minutos : %m%
echo Horas : %h%
timeout/t 1 /nobreak>nul
set/a s+=1
set/a m=s
set/a m/=60
set/a h=m
set/a h/=60
goto inicio

------Fin del Codigo-----------------------------------------------------------------------------

Si alguien sabe porfa diganme en los comentarios  ;)


En línea

Pero aunque los que sepan me digan que no, yo sé muy bien que existe el lado oscuro del sol. – El lado soleado de la calle
M401

Desconectado Desconectado

Mensajes: 119


:$


Ver Perfil
Re: [Duda] BATCH : Cronometro con Historial de Tiempo
« Respuesta #1 en: 7 Abril 2019, 19:34 pm »

PD.disculpen si hizo falta el cuadro donde ponen los codigos, Pero soy nuevo en el foro y este es mi primer tema :u


En línea

Pero aunque los que sepan me digan que no, yo sé muy bien que existe el lado oscuro del sol. – El lado soleado de la calle
Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [Duda] BATCH : Cronometro con Historial de Tiempo
« Respuesta #2 en: 8 Abril 2019, 03:14 am »

Hola Mudered, creo que debería ser "set /a s=0", pero dado que son segundos, no creo que sea muy importante.

El código, es bueno. Es sencillo y cumple su función.

No entiendo lo de multiplicar.

supongo que sería:

Código:
set/a s+=1
echo %s%>segundos.txt

el '>' resetearía el archivo, por cada ciclo del bucle, introduciendo el valor de 's' hasta el corte.

PD1: En cuanto a como poner el código, arriba hay una opción que es un '#' esa permite colocar el código.

PD2: Dale un vistazo a mi cronometro, funciona distinto, pero alguna parte del código podría ayudar https://foro.elhacker.net/scripting/cronometro_batch-t494403.0.html
En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Re: [Duda] BATCH : Cronometro con Historial de Tiempo
« Respuesta #3 en: 8 Abril 2019, 04:11 am »

Bueno ya te respondieron arriba, el tienes q corregir lo de los segundos, siguen aumentando cuando llegan a 60.

Y Respondiendo a tu pregunta :

Código
  1. @echo off
  2. @mode con cols=30 lines=10
  3. if exist Registro.txt del Registro.txt >nul
  4. cls
  5. color 0a
  6.  
  7. set/a s=1
  8.  
  9. echo.
  10. echo Para Pausar El Cronometro
  11. echo Utiliza (Ctrl+C)
  12. echo.
  13. echo Pulsa cualquier tecla para
  14. echo iniciar
  15. pause>nul
  16.  
  17. :inicio
  18. cls
  19. echo.
  20. echo       °±² Cronometro ²±°
  21. echo.
  22. echo Segundos : %s%
  23. echo Minutos : %m%
  24. echo Horas : %h%
  25. timeout/t 1 /nobreak>nul
  26. set/a s+=1
  27. set/a m=s
  28. set/a m/=60
  29. set/a h=m
  30. set/a h/=60
  31. (
  32.  echo %s%
  33.   )>Registro.txt
  34. goto inicio
En línea



M401

Desconectado Desconectado

Mensajes: 119


:$


Ver Perfil
Re: [Duda] BATCH : Cronometro con Historial de Tiempo
« Respuesta #4 en: 8 Abril 2019, 23:28 pm »

Buenas hace rato estaba intentando hacerlo mas complejo, pero mas entendible, Osea como dijo el we, Que no pasara de los 60 segundos y resulta que me llevo casi 1 hora  :xD

 Pero creo que alfin lo termine y quiero que vean como me salió, No le agregue el Historial porque es muy facil añadirlo y ahi veran ustedes si lo añaden o no, Pero diganme si quedo bien o si Tiene Errores...

Código:
@echo off
title Cronometro
cls
color 0a
@mode con cols=20 lines=10

set/a s=1
set/a h=1

echo Pulsa Cualquier
echo Tecla Para Iniciar
echo El Cronometro.
echo.
echo Para Pausarlo
echo Simplemente Utiliza
echo (CTRL+C)
echo.
pause>nul

:a
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      00:00:0%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==10 (goto b) else goto a

:b
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      00:00:%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==60 (goto revalue-a) else goto b

:revalue-a
set/a s=1
set/a m+=1
goto c

:c
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      00:0%m%:0%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==10 (goto d) else goto c

:d
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      00:0%m%:%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==60 goto revalue-a
if %m%==10 (revalue-b) else goto d

:revalue-b
set/a s=1
set/a m+=1
goto e

:e
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      00:%m%:0%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==10 (goto f) else goto e

:f
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      00:%m%:%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==60 goto revalue-b
if %m%==60 (goto PH) else goto f


:--------------------Horas---------------


:PH
set/a s=1
set/a m=1
set/a h+=1
goto g

:revalue-h
set/a s=1
set/a m+=1
goto i

:revalue-now
set/a s=1
set/a m+=1
goto k



:g
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      0%h%:00:0%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==10 (goto h) else goto g

:h
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      0%h%:00:%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==60 (goto revalue-h) else goto h

:i
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      0%h%:0%m%:0%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==10 (goto j) else goto i

:j
cls
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      0%h%:0%m%:%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==60 goto revalue-h
if %m%==10 (goto k) else goto j

:k
cls
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      0%h%:%m%:0%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==10 (goto l) else goto k

:l
cls
cls
echo.
echo °±² Cronometro ²±°
echo.
echo      0%h%:%m%:%s%
echo.
timeout/t 1 /nobreak>nul
set/a s+=1
if %s%==60 goto revalue-now
if %m%==60 (goto PH) else goto l

 No llevo mas de 1 semana en batch, y Creo que todavia me hace falta aprender mas Y quiero Saber si voy bien Como lo estoy haciendo o hay una forma mas Facil.
« Última modificación: 8 Abril 2019, 23:32 pm por Mudereded401 » En línea

Pero aunque los que sepan me digan que no, yo sé muy bien que existe el lado oscuro del sol. – El lado soleado de la calle
Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [Duda] BATCH : Cronometro con Historial de Tiempo
« Respuesta #5 en: 9 Abril 2019, 03:04 am »

Hay demasiados 'saltos' en tu segundo código. Sirve. Pero podría haberse simplificado muchísimo.

Use solo un salto, goto a, y varios condicionales. El codigo que colocaste tiene 188, y  lineas y este tiene 47.

Ambos hacen lo mismo, la diferencia es el codigo:
*Este usa condicionales para ahorrar saltos (por ejemplo los :revalue, todos eran iguales, no había necesidad de repetirlos)
*El texto base no cambia, usando una asignación particular de variables, que evitan este problema(el que set /a variable=09 por ejemplo tire error). Sin saltos adicionales.

Código
  1. @echo off
  2. cls
  3. title Crono (T_T)
  4. color 0a
  5. mode con cols=31 lines=10
  6.  
  7. set/a s=0
  8. set/a m=0
  9. set/a h=0
  10.  
  11. echo Pulsa Cualquier
  12. echo Tecla Para Iniciar
  13. echo El Cronometro.
  14. echo Para Pausarlo
  15. echo Simplemente Utiliza
  16. echo (CTRL+C)
  17. pause>nul
  18.  
  19. mode con cols=31 lines=5
  20.  
  21. :a
  22. if %s%==60 (
  23. set /a s=0
  24. set /a m+=1
  25. )
  26. if %s% LSS 10 (set a=:0) else (set a=:)
  27. if %m%==60 (
  28. set /a m=0
  29. set /a h+=1
  30. )
  31. if %m% LSS 10 (set b=:0) else (set b=:)
  32. if %h%==24 (
  33. set /a h=0
  34. )
  35. if %h% LSS 10 (set "c= 0") else (set "c= ")
  36.  
  37. cls
  38. echo °±²     Cronometro    ²±°
  39. echo            %c%%h%%b%%m%%a%%s%
  40. timeout/t 1 /nobreak>nul
  41. set/a s+=1
  42.  

Si añades este código al inicio, el cronometro se ejecutara en otra ventana al ser llamado por el cmd.

Código
  1. @echo off
  2. if "%1"=="12" goto c
  3. start %~n0 12
  4. exit /B
  5. :c
  6. cls
  7.  

Recomiendo que leas el tuto de programación avanzada en batch https://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html
« Última modificación: 9 Abril 2019, 03:30 am por Segadorfelix » En línea

M401

Desconectado Desconectado

Mensajes: 119


:$


Ver Perfil
Re: [Duda] BATCH : Cronometro con Historial de Tiempo
« Respuesta #6 en: 9 Abril 2019, 13:25 pm »

Vale gracias por la ayuda, Todavia soy un nuevo en batch y creo que no entiendo bien tu codigo xd Pero ahi ire aprendiendo, Apenas estos son mis primeros .bat y quiero hacerlos como tu. Mas facil y mas rapidos. Igual gracias por tu ayuda.  ;)
En línea

Pero aunque los que sepan me digan que no, yo sé muy bien que existe el lado oscuro del sol. – El lado soleado de la calle
Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: [Duda] BATCH : Cronometro con Historial de Tiempo
« Respuesta #7 en: 12 Abril 2019, 17:26 pm »

Vale gracias por la ayuda, Todavia soy un nuevo en batch y creo que no entiendo bien tu codigo xd Pero ahi ire aprendiendo, Apenas estos son mis primeros .bat y quiero hacerlos como tu. Mas facil y mas rapidos. Igual gracias por tu ayuda.  ;)

Hago la recomendación 'obligatoria' de siempre, hay lenguajes de scriping más adecuados, para aprender, como autoit o si se quiere consola, python o ruby.

Pero aprender Batch no hace ningun mal y ayuda a que uno se maneje mejor por Windows.

Hay formas más rápidas y eficientes que la mía, podría asegurar que con For, tal vez podría haber hecho el script más eficiente.

Es solo leer los post 'clavados en Scriping', allí, esta la mayor parte de la información. Y consultar los comandos en la consola con Help y con [comando] /?

SaluDos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cronometro en BATCH « 1 2 3 »
Scripting
Dirpok 22 21,486 Último mensaje 28 Enero 2013, 17:16 pm
por Eleкtro
[Batch] (Aporte) Simple cronómetro
Scripting
Eleкtro 0 2,445 Último mensaje 27 Enero 2012, 06:25 am
por Eleкtro
[Batch] Historial Secreto Mira el historial secreto y borralo y mucho mas...
Scripting
ELVJop 5 11,065 Último mensaje 2 Mayo 2012, 14:47 pm
por flony
Cronometro BATCH
Scripting
Segadorfelix 0 2,085 Último mensaje 7 Abril 2019, 08:00 am
por Segadorfelix
[BATCH] [Aporte] Cronometro Inusual
Scripting
M401 3 2,642 Último mensaje 25 Noviembre 2020, 22:23 pm
por M401
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines