Underc0de

Programación Scripting => Batch - Bash => Mensaje iniciado por: Xt3mP en Mayo 23, 2011, 11:45:11 PM

Título: [BATCH] Shutdown Countdown System
Publicado por: Xt3mP en Mayo 23, 2011, 11:45:11 PM
Este código en realidad es algo sucio y lo utilizo en lo personal ya que duermo con sonidos relajantes (no-homo), y como tenía el ligero problema de estarme levantando a apagar el ordenador, o bien, estar poniendo manualmente por cmd shutdown -s -t XX, se me ocurrió hacer un código BATCH demasiado sencillo:

(http://imagengratis.org/images/scsxt3mp.png)

1.- Te pide el número de minutos para que tarde el apagado (posteriormente ocuparás escribir Y para confirmar o N para cancelar).
2.- Si existe o no un apagado en progreso, lo cancelará.
3.- Te saca del programa.

Código (batch) [Seleccionar]

@echo off
title  Shutdown Countdown System by Xt3mP
color 0A
:start
mode con cols=51 lines=20
cls
set up=ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
set empty=³                                                 ³
set title=³            SHUTDOWN COUNTDOWN SYSTEM            ³
set options=³     OPTIONS                                     ³
set option1=³     1.- CONFIG SHUTDOWN COUNTDOWN SYSTEM        ³
set option2=³     2.- CANCEL SHUTDOWN COUNTDOWN SYSTEM        ³
set option3=³     3.- EXIT                                    ³
set processing=³                COMPLETE THE FIELD               ³
set author=³              Xt3mP[at]h4x0rz[dot]us             ³
set line=³_________________________________________________³
set down=ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo %up%%empty%%title%%line%%empty%%options%%empty%%option1%%option2%%option3%%empty%%line%%empty%%author%%empty%%down%
set /p option=Choose an option:
if not defined option (goto:start)
for %%_ in (1 2 3) do (
if ["%option%"]==["%%_"]  (goto:%option%)
)
msg * You inserted a wrong option
goto:start

:1
mode con cols=51 lines=15
cls
echo %up%%empty%%title%%line%%empty%%processing%%line%%empty%%author%%empty%%down%
set /p minutes=How much minutes you want to start the shutdown:
if not defined minutes (goto:config)
set /p confirm=Are you sure that you want %minutes% minutes? (Y/N)
if not defined confirm (goto:config)
for %%_ in (Y N) do (
if ["%confirm%"]==["%%_"]  (goto:%confirm%)
)
msg * You inserted a wrong option
goto:1
pause >nul

:Y
mode con cols=51 lines=15
cls
echo %up%%empty%%title%%line%%empty%%processing%%line%%empty%%author%%empty%%down%
set /a finalminutes= %minutes% * 60
echo Shutdown countdown will be started when you press any key, after that this program will close...
pause > nul
shutdown -s -t %finalminutes%
goto:start

:N
goto:1

:2
mode con cols=51 lines=15
cls
echo %up%%empty%%title%%line%%empty%%processing%%line%%empty%%author%%empty%%down%
echo Shutdown countdown will be canceled when you press any key...
pause > nul
shutdown -a
goto:start

:3
mode con cols=51 lines=14
cls
echo %up%%empty%%title%%line%%empty%%processing%%line%%empty%%author%%empty%%down%
echo Press any key to close this program...
pause > nul
exit


Bug:
Si cuando te pide minutos no ingresas un número (no comprobueba si es numérico) se apagará en ese mismo instante.

P.D. Les puede servir a algunos, aunque en realidad todo se resume a abrir CMD y escribir shutdown -s -t XX en donde XX es el tiempo para que se apague, saludos.
Título: Re:[BATCH] Shutdown Countdown System
Publicado por: Stiuvert en Mayo 25, 2011, 05:32:11 PM
Es interesante saberlo pero se puede programar el apagado de Windows con el "Creador de tareas"  ;)



Saludos
Título: Re:[BATCH] Shutdown Countdown System
Publicado por: Xt3mP en Mayo 25, 2011, 06:02:05 PM
Así es, te cito un texto del post:

Cita de: Xt3mP
P.D. Les puede servir a algunos, aunque en realidad todo se resume a abrir CMD y escribir shutdown -s -t XX en donde XX es el tiempo para que se apague, saludos.

Saludos.