En modifiant un peu tout ça, ça devrait marcher mieux:
@echo off
ping %1 -n 1 | find /c "temps<" > NUL
if %ERRORLEVEL% EQU 0 goto present
:erreur
echo erreur
goto fin
:present
echo ca passe
:fin
- J'ai ajouté le @echo off pour pas tout afficher.
- J'envoi directement la commande du ping dans le find pour éviter de créer le fichier
- je teste plutot "time<" qui n'apparait que lorsque c'est bon
- je n'envoie qu'une seule commande ping (-n 1)
- je redirige l'affichage de find dans NUL pour ne pas afficher son texte lorsqu'il trouve
- moi je préfère tester la variable %ERRORLEVEL% classiquement. Ton problème vient, je pense, que l'utilisation du IF avec ERRORLEVEL direct doit poser problème quand tu fait plusieurs IF sans utiliser de ELSE