Batch arret pc avec temps voulu

Fermé
Tup57 Messages postés 1 Date d'inscription mardi 3 mai 2011 Statut Membre Dernière intervention 3 mai 2011 - 3 mai 2011 à 14:04
dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 - 3 mai 2011 à 19:45
Bonjour,

J'ai un petit problème avec mon batch qui doit faire en sorte que l'ordinateur s'éteigne au temps voulu.
Par exemple, je rentre 40 min sa marche mais dès que je rentre 2h il s'arrête à 1 heure et éteint le pc.

voici ceux que j'ai tapé :

@echo off
title Temps

set s=0
set m=0
set h=0
set G=0
set N=0


echo.
set/p G= Combien d'heures ?


echo.
set/p N= Combien de minutes ?

:debut
cls


if not "%G%"=="0" goto commence
if "%G%"=="0" goto 1


:1
if "%N%"=="0" goto Bye
if not "%N%"=="0" goto commence


:commence
echo.
set/a s=%s%+1
echo %h% heures %m% minutes %s% secondes
timeout /t 1 >nul
echo.
if "%s%"=="59" goto minute
if not "%s%"=="59" goto debut


:minute
cls
echo.
set s=0
set/a m=%m%+1
echo %h% heures %m% minutes %s% secondes
echo.
if "%h%"=="%G%" goto 2
if not "%h%"=="%G%" goto 3


:2
if "%m%"=="%N%" goto Bye


:3
if "%m%"=="59" goto heure
if not "%m%"=="59" goto debut


:heure
cls
echo.
set m=0
set/a h=%h%+1
echo %h% heures %m% minutes %s% secondes
echo.
if not "%h%"=="%G%" goto debut


:Bye
cls
shutdown /f /s


merci de me repondre ...


A voir également:

2 réponses

karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
3 mai 2011 à 14:37
salut

l'écriture du commande IF que vous avez ecrit n'est pas bien saisi

IF ( commande ) else ( commande )

ex:
vous avez tappez :

if not "%G%"=="0" goto commence
if "%G%"=="0" goto 1

mais ceci va comme suit:

if not "%G%"=="0" ( goto commence ) else ( goto 1 )

ou

if not "%G%"=="0" goto commence
goto 1



voici un simple batch ( ceci pour XP s'il ya un prb tappez shutdown /? pour que je puisse t'aider )

@echo off

title Temps

color 1e
echo.
set /p "heure=> Combien d'heures ? "
echo.
set /p "min=> Combien de minutes ? "
echo.
echo.
set /a heure = %heure%*60*60
set /a min = %min*60
set /a tot = %heure%+%min%
echo.
echo.
echo heure = %heure% ,min = %min% ,tot = %tot%
echo.
shutdown -t %tot% -s
0
je vais essayer avec le else. je suis sous vista qui est très chiant d'ailleurs, merci
0
dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 127
Modifié par dg_belmontet le 3/05/2011 à 15:12
Bonjour,

Il y en a eu un plus rapide que moi mais voici quand même mon "pensum"

Ton batch ne fonctionne pas car "Timeout" n'est pas un exécutable (à moins que ce soit un batch à toi). De plus avec ton batch les minutes affichées vont aussi vites que les secondes réelles.

Voici mon "pensum" :

@echo off
title Temps

:Debut
set H=0
set M=0
set T=0
set heure=
set minute=

:Saisie_heures
Cls
echo.
Echo.
Echo Planification de la mise hors-tension du micro dans :
Echo.
Echo.
set/p H= - Combien d'heures ?
if "%H%"=="0" goto Saisie_minutes
set /a Heure=%H%*3600

:Saisie_minutes
echo.
Echo.
Echo.
set/p M= - Combien de minutes ?
if "%M%"=="0" goto Affiche
set /a Minute=%M%*60

:Affiche
cls
Echo.
Echo.
Echo Mise hors-tension dans %H% heure(s) et %M% minute(s)
Echo.
Echo.
set /p Rep= Etes-vous d'accord (o ou n) ?
if /I %rep%==o goto Shutdown
if /I %rep%==n Goto Debut
Echo.
Echo.
Echo Veuillez saisir o pour OUI ou bien n pour NON
echo.
Echo.
Pause
Goto Affiche



:Shutdown
Set /a T=%Heure%+%Minute%
Cls
Echo.
Echo.
Echo Attention : Mise hors-tension du micro dans %T% secondes....
Shutdown.exe -f -s -t %T% -c "Demande de mise hors-tension planifiée par l'opérateur"



Bon courage....
0
sous vista timeout est une commande interne et les minutes sont normal 60s
0
dg_belmontet Messages postés 313 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 8 juin 2016 127
3 mai 2011 à 19:45
OK je suis sous XP et il n'y a pas de "timeout". Ceci explique que sous XP les minutes vont très vites puisque TIMEOUT ne fonctionne pas. Mais le code que j'ai mis doit fonctionner sans problème sousVista.
0