Action avec timing hexadécimal
Posté : 16 mars 2011 17:23
Bonjour, voici un script qui eteind, redémarre ou ferme la session courante à une heure voulu avec un compte à rebours en hexadécimal !
Code : Tout sélectionner
@echo off
title Choix
color f0
mode con: cols=60
mode con: lines=8
:deb
cls
echo Que voulez vous faire ?
echo 1 : Eteindre le systeme
echo 2 : Redemarrer
echo 3 : Fermer la session %username%
set/p "choix=>"
if %choix%==1 goto eteindre
if %choix%==2 goto redemarrer
if %choix%==3 goto session
goto deb
:eteindre
title Arret du systeme
set num=1
set action=Eteindre l'ordinateur
set action2=s'eteindre
goto temps
:redemarrer
title Redemarrage du systeme
set num=2
set action=Redemarrer l'ordinateur
set action2=redemarrer
goto temps
:session
title Fermeture de la session %username%
set num=3
set action=Fermer la session %username%
set action2=fermer la session %username%
:temps
cls
echo Il est %time:~0,8%
echo %action% a quelle heure ? (hh:mm:ss:)
set/p "heurentre=>"
if %heurentre:~0,1%==0 set/a hhe=%heurentre:~0,1% * 60 * 60
set/a hhe=%heurentre:~0,2% * 60 * 60
if %heurentre:~3,1%==0 set/a mhe=%heurentre:~4,1% * 60
set/a mhe=%heurentre:~3,2% * 60
if %heurentre:~6,1%==0 set/a she=%heurentre:~7,1%
set/a she=%heurentre:~6,2%
set/a decompt=(%hhe% + %mhe% + %she%) - ((%time:~0,2% * 60 * 60) + (%time:~3,2% * 60) + %time:~6,2%)
if %decompt% LEQ 0 goto err
goto secmin
:err
set/a decompt=(24 * 60 * 60) - ((%time:~0,2% * 60 * 60) + (%time:~3,2% * 60) + %time:~6,2%) + (%hhe% + %mhe% + %she%)
:secmin
set/a min=%decompt% /60
set/a sec=%decompt% - (%min% * 60)
if %min% LSS 60 goto boucle
set/a heu=%min% / 60
set/a min=%min% - (%heu% * 60)
:boucle
cls
echo Il est %time:~0,8%
echo L'ordinateur vas %action2% a %heurentre:~0,2%:%heurentre:~3,2%:%heurentre:~6,2%
set/a rec=%heu% + %min% + %sec%
if %rec%==0 goto finish
echo compte a rebours %heu%:%min%:%sec%
sleep 1
set/a sec=sec - 1
if %sec% GEQ 0 goto boucle
set sec=59
set/a min=min - 1
if %min% GEQ 0 goto boucle
set min=59
set/a heu=heu - 1
if %heu% GTR 0 goto boucle
:finish
if %num%==1 goto stopsys
if %num%==2 goto redemsys
if %num%==3 goto stopses
:stopsys
shutdown -s -t 0 -f
:redemsys
shutdown -r -t 0 -f
:stopses
shutdown -l -t 0 -f