[Batch] Le programme s'arrete sans le loop

Résolu
canarder Messages postés 2034 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

Je fais une petite horloge numérique en batch pour passer le temps.
Mais le programme s'arrête sans prendre en compte le loop depuis que j'ai défini les if pour remettre les secondes, minutes et heures à 0.

Voici mon code :

@echo off
set mytime=%time%
set heure=%mytime:~0,2%
set minute=%mytime:~3,2%
set seconde=%mytime:~6,2%
:loop
set mytime=%heure%:%minute%:%seconde%
echo --------
echo %mytime%
echo --------
ping 127.0.0.1 -n 2 > dechet.txt
del dechet.txt
set /a seconde=%seconde%+1
if seconde==60 (set /a seconde=0
set /a minute=%minute%+1)
if minute==60 (set /a minute=0
set /a heure=%heure%+1
if heure==24 (set /a heure=0)
cls
goto loop


Je crois n'avoir pas très bien saisi la commande if en batch pour ce type d'utilisation ... En php ou en javascript je m'en sortirais.

Merci pour votre aide.

--
___/\_canarder_/\___
Le Renard qui règne sur le WEB : Firefox

3 réponses

  1. BeFaX Messages postés 16334 Statut Contributeur 3 863
     
    Voici la correction :

    @echo off
    set mytime=%time%
    set heure=%mytime:~0,2%
    set minute=%mytime:~3,2%
    set seconde=%mytime:~6,2%
    :loop
    set mytime=%heure%:%minute%:%seconde%
    echo --------
    echo %mytime%
    echo --------
    ping 127.0.0.1 -n 2 >nul
    set /a seconde=%seconde%+1
    if %seconde%==60 set /a seconde=0 & set /a minute=%minute%+1
    if %minute%==60 set /a minute=0 & set /a heure=%heure%+1
    if %heure%==24 set /a heure=0
    cls
    goto loop

    Pour un ping 127.0.0.1 -n 2 tu peux l'envoyer dans NULL au lieu d'un fichier puis supprimer le fichier : ping 127.0.0.1 -n 2 >nul
    0
  2. canarder Messages postés 2034 Statut Membre 357
     
    ça créé un fichier null :\ je sais pas pourquoi. j'avais fais ça avant.
    0
    1. BeFaX Messages postés 16334 Statut Contributeur 3 863
       
      Non, cela ne crée pas de fichier null, tu dois utiliser cette syntaxe : ping 127.0.0.1 -n 2 >nul

      Nul avec un seul L
      0
    2. canarder Messages postés 2034 Statut Membre 357
       
      en plus la tâche ping.exe restait si ça créait un fichier ...
      0
  3. Utilisateur anonyme
     
    Salut Canarder

    Pas mal ton programme, mais tu peux ajouter la date ;)

    comme ceci

    @echo off
    set mytime=%time%
    set heure=%mytime:~0,2%
    set minute=%mytime:~3,2%
    set seconde=%mytime:~6,2%
    :loop
    set mytime=%heure%:%minute%:%seconde%
    echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
    echo %date% :%mytime%   
    echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
    ping 127.0.0.1 -n 2 >nul
    set /a seconde=%seconde%+1
    if %seconde%==60 set /a seconde=0 & set /a minute=%minute%+1
    if %minute%==60 set /a minute=0 & set /a heure=%heure%+1
    if %heure%==24 set /a heure=0
    cls
    goto loop


    En tout cas, c'est pas mal, pour un petit programme

    @+
    0