[Batch] Le programme s'arrete sans le loop

Résolu/Fermé
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 - 4 sept. 2011 à 17:47
 Utilisateur anonyme - 5 sept. 2011 à 09:20
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

BeFaX Messages postés 14245 Date d'inscription mercredi 24 décembre 2008 Statut Contributeur Dernière intervention 6 août 2013 3 812
Modifié par BeFaX le 4/09/2011 à 18:03
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
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
4 sept. 2011 à 18:50
ça créé un fichier null :\ je sais pas pourquoi. j'avais fais ça avant.
0
BeFaX Messages postés 14245 Date d'inscription mercredi 24 décembre 2008 Statut Contributeur Dernière intervention 6 août 2013 3 812
4 sept. 2011 à 19:02
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
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
4 sept. 2011 à 19:56
en plus la tâche ping.exe restait si ça créait un fichier ...
0
Utilisateur anonyme
5 sept. 2011 à 09:20
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