Comment effectuer un if sur un ping dos - Shell/Batch - Programmation
Marsh Posté le 17-05-2006 à 18:26:03
faire un fichier (liste.txt) avec les 20 adresses IP (1 IP par ligne) et lancer un batch de ce type :
@echo off
SETLOCAL EnableDelayedExpansion
for /f "delims=" %%i in (liste.txt) do (
ping %%i>nul
if !errorlevel! NEQ 1 (echo %%i OK) else (echo %%i NON connect')
)
pause
endlocal
Marsh Posté le 18-05-2006 à 13:07:12
merci beaucoup, par contre ya un bug, il me dit ok alors que les pc ne sont pas connectés.
le message est "limpossible de joindre l'hote de destination" au lieu d'etre "delai d'attente depassée" lorsque je fait un ping manuel, je ne sais aps si c'est ce qui fausse le batch
Marsh Posté le 18-05-2006 à 17:24:37
Effectivement j'ai écrit ce batch un peu vite !
je n'ai prévu que pour les deux cas suivants :
il faut identifier les autres %errorlevel% ou modifier l'opérateur par supérieur ou inférieur à.
Marsh Posté le 19-05-2006 à 10:49:37
"puis je joue sur l'errorlevel, de mémoire zero si il rouve, un si il trouve pas, deux si erreur"
J'ai trouvé cela avec google
que signifie le neq??
Marsh Posté le 19-05-2006 à 12:21:41
neq (différent de)
lss (inférieur à)
gtr (supérieur à)
etc voir l'aide de la commande if dans Windows.
Marsh Posté le 19-05-2006 à 13:25:08
il serai plus fiable d'ajouter un find avec un des mots contenus dans la recherche.
genre find TTL = ok
find impossible = non connecté
find delais = non connecté
Marsh Posté le 17-05-2006 à 13:26:46
Salut a tous. j'aimerai effectuer un ping de 20 machine et avoir un rapport a la fin me disant les machines ok et les machines deconnectées.
j'ai fait quelques recherches sur google mais sans succès