Batch arret pc avec temps voulu

Tup57 Messages postés 1 Statut Membre -  
dg_belmontet Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   -
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 ...

2 réponses

  1. karirovax Messages postés 3584 Statut Membre 215
     
    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
    1. tup57
       
      je vais essayer avec le else. je suis sous vista qui est très chiant d'ailleurs, merci
      0
  2. dg_belmontet Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   128
     
    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
    1. tup57
       
      sous vista timeout est une commande interne et les minutes sont normal 60s
      0
    2. dg_belmontet Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   128
       
      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