[Batch] Le programme s'arrete sans le loop

[Résolu/Fermé]
Signaler
Messages postés
1706
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
-
 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.

3 réponses

Messages postés
14200
Date d'inscription
mercredi 24 décembre 2008
Statut
Contributeur
Dernière intervention
6 août 2013
3 792
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
Messages postés
1706
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
353
ça créé un fichier null :\ je sais pas pourquoi. j'avais fais ça avant.
Messages postés
14200
Date d'inscription
mercredi 24 décembre 2008
Statut
Contributeur
Dernière intervention
6 août 2013
3 792
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
Messages postés
1706
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
13 mai 2018
353
en plus la tâche ping.exe restait si ça créait un fichier ...

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


@+