Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Segadorfelix en 7 Abril 2019, 08:00 am



Título: Cronometro BATCH
Publicado por: Segadorfelix en 7 Abril 2019, 08:00 am
Hola a todos! ;D

Comparto un código sencillo, que realice para medir el tiempo que se realiza alguna actividad. No es un cronometro en el sentido estricto. Solo toma la hora inicial, la hora final y da el delta de tiempo, por medio cuentas. Además de guardarlo en un archivo, para mirar el progreso total, de dicha actividad. Y las fechas respectivas.

https://pastebin.com/Rn1S7vD0 (https://pastebin.com/Rn1S7vD0)

(https://i.ibb.co/s5T8MBN/0.png)
(https://i.ibb.co/ZYqP3kP/1.png)
(https://i.ibb.co/cLJMs8b/3.png)
(https://i.ibb.co/N3CkqHN/4.png)

Código
  1. @echo off
  2. Rem Segaforfelix, DEMIAN_ABRAXAS
  3. title Cronometro
  4. set Carpet="%USERPROFILE%\Desktop\Practica_I\Registro.txt"
  5. IF NOT exist %Carpet% (
  6. md %Carpet:~0,-14%"
  7. echo REGISTRO:> %Carpet%
  8. echo.>> %Carpet%
  9. )
  10.  
  11. set /a nh=0
  12. set /a nm=0
  13. set /a nr=0
  14. for /f "usebackq eol=H tokens=2" %%a in (%Carpet%) do (
  15. set /a nh=%%a+nh
  16. )
  17. for /f "usebackq eol=H tokens=4" %%a in (%Carpet%) do (
  18. set /a nm=%%a+nm
  19. )
  20. IF %nm% GEQ 60 (
  21. set /a nr=1
  22. )
  23. IF "%nr%"=="1" (
  24. set /a nh=nh+nm/60
  25. set /a nm=nm%%60
  26. )
  27.  
  28. echo Progreso Total: %nh% horas. %nm% minutos.
  29. set /p a="Presione enter para iniciar el conteo...."
  30. set a=%time%
  31. set b=%date%
  32. set /p c="Presione enter para finalizar el conteo...."
  33. set c=%time%
  34.  
  35. IF "%a:~0,1%" EQU "0" (set /a hi=%a:~1,1%) ELSE (set /a hi=%a:~0,2%)
  36. IF "%a:~3,1%" EQU "0" (set /a mi=%a:~4,1%) ELSE (set /a mi=%a:~3,2%)
  37.  
  38. IF "%c:~0,1%" EQU "0" (set /a hf=%c:~1,1%) ELSE (set /a hf=%c:~0,2%)
  39. IF "%c:~3,1%" EQU "0" (set /a mf=%c:~4,1%) ELSE (set /a mf=%c:~3,2%)
  40.  
  41. set /a Resulm=mf-mi
  42. set /a Resulh=hf-hi
  43.  
  44. IF %hi% GTR %hf% (
  45. Set /a Resulh=24+Resulh
  46. )
  47.  
  48. IF %mi% GTR %mf% (
  49. Set /A Resulh=Resulh-1
  50. Set /A Resulm=60+Resulm)
  51.  
  52. Echo La practica a durado:
  53. Echo %Resulh% horas.
  54. Echo %Resulm% minutos.
  55.  
  56. :save
  57. set /p g="¿Desea guardarlo en el Registro?(s/n)"
  58. IF "%g%"=="n" (exit) ELSE (
  59. IF "%g%"=="s" (
  60. echo %b%>>%Carpet%
  61. echo Hora inicial: %a%>>%Carpet%
  62. echo Hora final: %c%>>%Carpet%
  63. echo Duración: %Resulh% horas. %Resulm% minutos.>>%Carpet%
  64. echo.>> %Carpet%
  65. ) ELSE (goto save)
  66. )
  67.  

Espero, sea de ayuda a quien lo requiera!