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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Problema Script Cuenta Regresiva
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Problema Script Cuenta Regresiva  (Leído 8,599 veces)
XXLuigiMario

Desconectado Desconectado

Mensajes: 5



Ver Perfil WWW
[BATCH] Problema Script Cuenta Regresiva
« en: 7 Junio 2012, 22:30 pm »

Hola amigos de elhacker.net, soy nuevo aquí, y vengo con un problema, tengo hecho un script para una cuenta regresiva en batch pero se queda en el numero "9".

El script es este:

Código:
@echo off
title Cuenta Regresiva
rem Made by XXLuigiMario
:menu
set /p min=Escribe cuantos minutos durara la cuenta:
if %min% LSS 10 (goto minuto)
:minuto
set min=0%min%
goto segundo
:segundo
set seg=00
goto cuenta
:cuenta
cls
echo Tiempo Restante:
echo.
echo %min% min. %seg% seg.
call :restarsegundo
:restarsegundo
if %seg%==00 (call :restarminuto)
if %seg% LSS 9 (call :restarsegundocontinuar)
if %seg%==10 (call :restarsegundo2)
ping -n 2 0.0.0.0>nul
set /a seg=%seg% - 1
goto cuenta
:restarsegundocontinuar
ping -n 2 0.0.0.0>nul
set /a seg=%seg% - 1
goto cuenta
:restarsegundo2
ping -n 2 0.0.0.0>nul
set /a seg=%seg% - 1
set seg=0%seg%
goto cuenta
:restarminuto
if %min%==00 (goto cuentaacabada)
if %min% LSS 11 (call :restarminuto2)
ping -n 2 0.0.0.0>nul
set /a min=%min% - 1
set /a seg=%seg% + 59
goto cuenta
:restarminuto2
ping -n 2 0.0.0.0>nul
set /a min=%min% - 1
set min=0%min%
set /a seg=%seg% + 59
goto cuenta
:cuentaacabada
echo Cuenta regresiva terminada!
pause >nul
goto menu

Qualquier ayuda se agradece  :D


En línea

BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: [BATCH] Problema Script Cuenta Regresiva
« Respuesta #1 en: 8 Junio 2012, 15:50 pm »

Se puede simplificar el code... pero ahí está mi intento... Deberías identar tu code...

Código
  1. ::Cuenta atrás
  2. ::Batchiano
  3. @echo off
  4. setlocal enabledelayedexpansion
  5. :menu
  6. set /p h="Horas: "
  7. set /p m="Minutos: "
  8. set /p s="Segundos: "
  9. for %%z in (h,m,s) do if not defined %%z (
  10. call :formato
  11. )
  12. if %h% GEQ 0 (
  13. if %m% GEQ 0 (
  14. if %m% LEQ 59 (
  15. if %s% GEQ 0 (
  16. if %s% LEQ 59 (
  17. call :contador
  18. ) else (
  19. call :formato
  20. )
  21. ) else (
  22. call :fomato
  23. )
  24. ) else (
  25. call :formato
  26. )
  27. ) else (
  28. call :formato
  29. )
  30. ) else (
  31. call :formato
  32. )
  33. goto :eof
  34.  
  35. :contador
  36. cls
  37. if %h% GEQ 0 (
  38. if %m% GEQ 0 (
  39. if %s% GEQ 0 (
  40. for /l %%a in (!h!,-1,0) do (
  41. for /l %%b in (!m!,-1,0) do (
  42. for /l %%c in (!s!,-1,0) do (
  43. echo Contador: %%a:%%b:%%c
  44. ping localhost -n 2 > nul
  45. cls
  46. )
  47. set s=59
  48. )
  49. set m=59
  50. )
  51. )
  52. )
  53. )
  54. goto :eof
  55.  
  56. :formato
  57. echo Formato incorrecto. Vuelva a intentarlo
  58. pause>nul & cls & call :menu
  59.  


En línea

Puede que desees aprender a programar desde 0: www.espascal.es
XXLuigiMario

Desconectado Desconectado

Mensajes: 5



Ver Perfil WWW
Re: [BATCH] Problema Script Cuenta Regresiva
« Respuesta #2 en: 8 Junio 2012, 18:14 pm »

Muchas gracias Batchiano :D, pero aun tengo un problema, yo quiero que si por ejemplo faltan cinco minutos, se vea asi: "00:05:00" no asi "0:5:0".
Lo he intentado con set m=0%m%, pero no me funciona :(
Alguien sabe como hacerlo?
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: [BATCH] Problema Script Cuenta Regresiva
« Respuesta #3 en: 11 Junio 2012, 04:36 am »

Hola,

Aqui tienes mi versión de cosecha propia xD

PD: Funciona especificando minutos, Como se supone que querías... Y usa el formato que quieres (00:00:00).

Saludos.






Código
  1. @echo off
  2. Title Cuenta Regresiva
  3.  
  4. REM By Elektro H@cker
  5. REM Visita: WWW.ElHacker.Net
  6.  
  7. Setlocal enabledelayedexpansion
  8.  
  9. :MENU
  10. set /p TIMER=Escribe cuantos minutos durara la cuenta ^>^>
  11. If not defined TIMER (Goto :Menu)
  12. Echo "%TIMER%"| FINDSTR /I "[A-Z]" >NUL && Goto :Menu || (set /A total_sec=%TIMER%*60)
  13. If %total_sec% LSS 3600 (Set /A Horas=0, Minutos=%TIMER%, Segundos=0& Goto :Countdown) ELSE (Set /A Timer+=60)
  14. Set /A Horas=%Timer%-60 & Set /A Horas=!Horas!/60
  15. Set /A MINUTOS=%Timer%-60 & For /L %%X in (1,1,!HORAS!) Do (Set /A MINUTOS-=60)
  16. Set /A Segundos=0
  17.  
  18. :Countdown
  19. CLS
  20. For /L %%H in (%HORAS%,-1,0) Do (
  21. For /L %%M in (!MINUTOS!,-1,0) Do (
  22. For /L %%S in (!SEGUNDOS!,-1,0) Do (
  23. Echo %%H| FINDSTR "^[0-9][0-9]$" >NUL && SET "HO=%%H" || (Set HO=0%%H)
  24. Echo %%M| FINDSTR "^[0-9][0-9]$" >NUL && SET "MI=%%M" || (Set MI=0%%M)
  25. Echo %%S| FINDSTR "^[0-9][0-9]$" >NUL && SET "SE=%%S" || (Set SE=0%%S)
  26. Echo !HO!:!MI!:!SE!
  27. Ping -n 2 localhost >NUL
  28. CLS
  29. )
  30. If !SE!==00 (Set /A SEGUNDOS=59)
  31. )
  32. If !MI!==00 (Set /A MINUTOS=59)
  33. )
  34.  
  35. :FIN
  36. Echo Fin de la cuenta atras.
En línea

XXLuigiMario

Desconectado Desconectado

Mensajes: 5



Ver Perfil WWW
Re: [BATCH] Problema Script Cuenta Regresiva
« Respuesta #4 en: 11 Junio 2012, 11:11 am »

EleKtro H@cker, gracias por ayudarme con el script, me ha funcionado perfecto :D!
En línea

987123564

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: [BATCH] Problema Script Cuenta Regresiva
« Respuesta #5 en: 14 Agosto 2016, 23:25 pm »

Hola, he probado el código de @Elektro y si pongo 60 minutos empieza en 48 minutos. Yo no se batch así que no les puedo aconsejar ni corregir nada :-(
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: [BATCH] Problema Script Cuenta Regresiva
« Respuesta #6 en: 15 Agosto 2016, 03:10 am »

Hola, he probado el código de @Elektro y si pongo 60 minutos empieza en 48 minutos. Yo no se batch así que no les puedo aconsejar ni corregir nada :-(

El código funciona correctamente al especificar 60 minutos:


Es posible que estés haciendo algo mal, ¿modificaste el código original de alguna manera?

Saludos!
« Última modificación: 15 Agosto 2016, 03:12 am por Eleкtro » En línea

BALTA00

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: [BATCH] Problema Script Cuenta Regresiva
« Respuesta #7 en: 23 Junio 2017, 23:18 pm »

Hola,

Aqui tienes mi versión de cosecha propia xD

PD: Funciona especificando minutos, Como se supone que querías... Y usa el formato que quieres (00:00:00).

Saludos.






Código
  1. @echo off
  2. Title Cuenta Regresiva
  3.  
  4. REM By Elektro H@cker
  5. REM Visita: WWW.ElHacker.Net
  6.  
  7. Setlocal enabledelayedexpansion
  8.  
  9. :MENU
  10. set /p TIMER=Escribe cuantos minutos durara la cuenta ^>^>
  11. If not defined TIMER (Goto :Menu)
  12. Echo "%TIMER%"| FINDSTR /I "[A-Z]" >NUL && Goto :Menu || (set /A total_sec=%TIMER%*60)
  13. If %total_sec% LSS 3600 (Set /A Horas=0, Minutos=%TIMER%, Segundos=0& Goto :Countdown) ELSE (Set /A Timer+=60)
  14. Set /A Horas=%Timer%-60 & Set /A Horas=!Horas!/60
  15. Set /A MINUTOS=%Timer%-60 & For /L %%X in (1,1,!HORAS!) Do (Set /A MINUTOS-=60)
  16. Set /A Segundos=0
  17.  
  18. :Countdown
  19. CLS
  20. For /L %%H in (%HORAS%,-1,0) Do (
  21. For /L %%M in (!MINUTOS!,-1,0) Do (
  22. For /L %%S in (!SEGUNDOS!,-1,0) Do (
  23. Echo %%H| FINDSTR "^[0-9][0-9]$" >NUL && SET "HO=%%H" || (Set HO=0%%H)
  24. Echo %%M| FINDSTR "^[0-9][0-9]$" >NUL && SET "MI=%%M" || (Set MI=0%%M)
  25. Echo %%S| FINDSTR "^[0-9][0-9]$" >NUL && SET "SE=%%S" || (Set SE=0%%S)
  26. Echo !HO!:!MI!:!SE!
  27. Ping -n 2 localhost >NUL
  28. CLS
  29. )
  30. If !SE!==00 (Set /A SEGUNDOS=59)
  31. )
  32. If !MI!==00 (Set /A MINUTOS=59)
  33. )
  34.  
  35. :FIN
  36. Echo Fin de la cuenta atras.

¿Qué se necesitaría agregar a ese código para que el usuario presionando una tecla interrumpa el conteo y pase a la siguiente línea?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como crear una cuenta regresiva?
Programación Visual Basic
ricardovinzo 2 11,859 Último mensaje 18 Noviembre 2008, 06:00 am
por cassiani
Cuenta regresiva
Programación C/C++
shevshe 4 16,476 Último mensaje 24 Enero 2013, 19:34 pm
por durasno
[Batch] Duda con Cuenta Regresiva
Scripting
Geormarsch 2 3,142 Último mensaje 13 Noviembre 2011, 18:31 pm
por Geormarsch
Cuenta regresiva
Programación Visual Basic
Demereth 3 2,783 Último mensaje 28 Marzo 2013, 16:47 pm
por Demereth
Cuenta regresiva a partir de una fecha (VB.Net)
.NET (C#, VB.NET, ASP)
#Aitor 8 6,504 Último mensaje 29 Septiembre 2015, 13:35 pm
por Lekim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines