Autor
|
Tema: [BATCH] Problema Script Cuenta Regresiva (Leído 9,058 veces)
|
XXLuigiMario
|
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: @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
|
|
|
En línea
|
|
|
|
BatchianoISpyxolo
Desconectado
Mensajes: 166
|
Se puede simplificar el code... pero ahí está mi intento... Deberías identar tu code... ::Cuenta atrás ::Batchiano :menu ) ) ) ) ) ) :contador cls echo Contador: %%a: %%b: %%c ping localhost -n 2 > nul cls ) ) ) ) ) ) :formato echo Formato incorrecto. Vuelva a intentarlo
|
|
|
En línea
|
|
|
|
XXLuigiMario
|
Muchas gracias Batchiano , 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
Mensajes: 9.878
|
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. REM By Elektro H@cker REM Visita: WWW.ElHacker.Net :MENU set /p TIMER=Escribe cuantos minutos durara la cuenta ^>^> Echo " %TIMER%" | FINDSTR /I "[A-Z]" >NUL && Goto : Menu || (set /A total_sec= %TIMER%*60 ) If %total_sec% LSS 3600 (Set /A Horas=0, Minutos= %TIMER%, Segundos=0 & Goto : Countdown) ELSE (Set /A Timer+=60 ) Set /A Horas= %Timer%-60 & Set /A Horas= !Horas!/60 Set /A MINUTOS= %Timer%-60 & For /L %%X in (1,1, !HORAS!) Do (Set /A MINUTOS-=60 ) :Countdown CLS For /L %%M in (!MINUTOS!,-1,0 ) Do ( For /L %%S in (!SEGUNDOS!,-1,0 ) Do ( Echo %%H| FINDSTR " ^[0-9][0-9]$" >NUL && SET "HO= %%H" || (Set HO=0 %%H) Echo %%M| FINDSTR " ^[0-9][0-9]$" >NUL && SET "MI= %%M" || (Set MI=0 %%M) Echo %%S| FINDSTR " ^[0-9][0-9]$" >NUL && SET "SE= %%S" || (Set SE=0 %%S) CLS ) If !SE!==00 (Set /A SEGUNDOS=59 ) ) If !MI!==00 (Set /A MINUTOS=59 ) ) :FIN Echo Fin de la cuenta atras.
|
|
|
En línea
|
|
|
|
XXLuigiMario
|
EleKtro H@cker, gracias por ayudarme con el script, me ha funcionado perfecto !
|
|
|
En línea
|
|
|
|
987123564
Desconectado
Mensajes: 8
|
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
Mensajes: 9.878
|
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
Mensajes: 35
|
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. REM By Elektro H@cker REM Visita: WWW.ElHacker.Net :MENU set /p TIMER=Escribe cuantos minutos durara la cuenta ^>^> Echo " %TIMER%" | FINDSTR /I "[A-Z]" >NUL && Goto : Menu || (set /A total_sec= %TIMER%*60 ) If %total_sec% LSS 3600 (Set /A Horas=0, Minutos= %TIMER%, Segundos=0 & Goto : Countdown) ELSE (Set /A Timer+=60 ) Set /A Horas= %Timer%-60 & Set /A Horas= !Horas!/60 Set /A MINUTOS= %Timer%-60 & For /L %%X in (1,1, !HORAS!) Do (Set /A MINUTOS-=60 ) :Countdown CLS For /L %%M in (!MINUTOS!,-1,0 ) Do ( For /L %%S in (!SEGUNDOS!,-1,0 ) Do ( Echo %%H| FINDSTR " ^[0-9][0-9]$" >NUL && SET "HO= %%H" || (Set HO=0 %%H) Echo %%M| FINDSTR " ^[0-9][0-9]$" >NUL && SET "MI= %%M" || (Set MI=0 %%M) Echo %%S| FINDSTR " ^[0-9][0-9]$" >NUL && SET "SE= %%S" || (Set SE=0 %%S) CLS ) If !SE!==00 (Set /A SEGUNDOS=59 ) ) If !MI!==00 (Set /A MINUTOS=59 ) ) :FIN 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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como crear una cuenta regresiva?
Programación Visual Basic
|
ricardovinzo
|
2
|
12,164
|
18 Noviembre 2008, 06:00 am
por cassiani
|
|
|
Cuenta regresiva
Programación C/C++
|
shevshe
|
4
|
16,927
|
24 Enero 2013, 19:34 pm
por durasno
|
|
|
[Batch] Duda con Cuenta Regresiva
Scripting
|
Geormarsch
|
2
|
3,396
|
13 Noviembre 2011, 18:31 pm
por Geormarsch
|
|
|
Cuenta regresiva
Programación Visual Basic
|
Demereth
|
3
|
2,977
|
28 Marzo 2013, 16:47 pm
por Demereth
|
|
|
Cuenta regresiva a partir de una fecha (VB.Net)
.NET (C#, VB.NET, ASP)
|
#Aitor
|
8
|
7,028
|
29 Septiembre 2015, 13:35 pm
por Lekim
|
|