OVH Cloud OVH Cloud

code de sortie d'un ping via CMD ?

4 réponses
Avatar
Laurent
Bonjour,

Je cherche à savoir quel sont les codes de sortie générés par la commande
ping
sous win2k (via la console)
C'est pour utiliser dans un batch.
Je ping une adresse, si réponse au ping je vais à une étiquette
si pas de réponse au ping, je vais à une autre étiquette.
ping -n 2 %adresse%
if %ERRORLEVEL%==1 goto SUITE
if %ERRORLEVEL%==0 goto RESERVE
:SUITE
....
:RESERVE
....
Le hic, c'est que le ping réponde ou pas, je m'en vais toujours vers
l'étiquette
correspondant à la sortie 0 !!
y'à un truc que je pige pas ...
Si le résulat de la commande est supérieur ou égale à 1, je devrais filer
vers SUITE, non ?

Merci,

Batcheur en herbe ;o)

4 réponses

Avatar
Patrick D
On Fri, 19 Dec 2003 22:40:19 +0100, Laurent <laurent~@moreau-fr.net> wrote:

Bonjour,

Je cherche à savoir quel sont les codes de sortie générés par la commande
ping
sous win2k (via la console)
C'est pour utiliser dans un batch.
Je ping une adresse, si réponse au ping je vais à une étiquette
si pas de réponse au ping, je vais à une autre étiquette.
ping -n 2 %adresse%
if %ERRORLEVEL%==1 goto SUITE
if %ERRORLEVEL%==0 goto RESERVE
:SUITE
....
:RESERVE
....



syntax error, si mes souvenirs sont justes ( pas ça sous la main)

if errorlevel 1 goto ...
if errorlevel 0 goto ...



--
* enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez
m'écrire *
* Donne un poisson à un homme, il aura à manger pour un jour
* Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
Avatar
Laurent
"Patrick D" <patrickr.dubois.don' a écrit dans le message de
news:
On Fri, 19 Dec 2003 22:40:19 +0100, Laurent <laurent~@moreau-fr.net>


wrote:

> Bonjour,
>
> Je cherche à savoir quel sont les codes de sortie générés par la


commande
> ping
> sous win2k (via la console)
> C'est pour utiliser dans un batch.
> Je ping une adresse, si réponse au ping je vais à une étiquette
> si pas de réponse au ping, je vais à une autre étiquette.
> ping -n 2 %adresse%
> if %ERRORLEVEL%==1 goto SUITE
> if %ERRORLEVEL%==0 goto RESERVE
> :SUITE
> ....
> :RESERVE
> ....

syntax error, si mes souvenirs sont justes ( pas ça sous la main)

if errorlevel 1 goto ...
if errorlevel 0 goto ...



non, pas mieux avec cette synthaxe ...
Avatar
Jean-Claude BELLAMY
Dans le message 3fe37799$0$7152$,
Laurent <laurent~@moreau-fr.net> s'est ainsi exprimé :

Bonjour,

Je cherche à savoir quel sont les codes de sortie générés par la
commande ping
sous win2k (via la console)
C'est pour utiliser dans un batch.
Je ping une adresse, si réponse au ping je vais à une étiquette
si pas de réponse au ping, je vais à une autre étiquette.
ping -n 2 %adresse%
if %ERRORLEVEL%==1 goto SUITE
if %ERRORLEVEL%==0 goto RESERVE
SUITE


....
RESERVE


....
Le hic, c'est que le ping réponde ou pas, je m'en vais toujours vers
l'étiquette
correspondant à la sortie 0 !!
y'à un truc que je pige pas ...



C'est parce que la commande ping s'effectue toujours bien, que l'adresse
indiquée réponde ou non.

Si au lieu de l'adrIP tu indiques un FQDN (Full Qualified Domain Name) et
que ce FQDN n'exsite pas, dans ce cas ping renverra un ERRORLEVEL égal à 1

Tu peux faire l'expérience avec ceci :
fichier "testping.bat"
-------- couper ici --------
@echo off
ping -n 1 %1 > nul
echo Code %ERRORLEVEL%
-------- couper ici --------

H:WSH>testping www.inria.fr
Code 0

H:WSH>testping www.inria.fd
Code 1

Dans le 2ème cas, ping na pas pu obtenir la résolution de "www.inria.fd"
(qui n'existe pas)

Donc il faut tester ce que renvoie ping, p.ex. avec une commande "find", et
tester ensuite le code ERRORLEVEL renvoyé par find

- Si un FQDN n'est pas résolu,
ping renvoie la chaine "Hôte inconnu..."
- Si le FQDN est résolu, ou si on a passé une adr.IP
et si la destination ne répond pas,
ping renvoie en particulier la chaine "...perte 100%"

Donc on va tester les chaines "perte 100" et "inconnu"
Comme on ne peut pas faire de test "ou" dans une commande find, on va
l'exécuter 2 fois.
Donc on va stocker le résultat de ping dans un fichier texte, que l'on
soumettra ensuite 2 fois de suite à "find"

fichier "testping.bat"
-------- couper ici --------
@echo off
ping -n 1 %1 > ping.txt
find "perte 100" ping.txt > nul
if %ERRORLEVEL%==0 goto notfound
find "inconnu" ping.txt > nul
if %ERRORLEVEL%==0 goto notfound
echo %1 est disponible
goto fin
:notfound
echo %1 est indisponible
:fin
-------- couper ici --------

H:WSH>testping www.inria.fd
www.inria.fd est indisponible

H:WSH>testping www.inria.fr
www.inria.fr est disponible

H:WSH>testping 192.168.0.2
192.168.0.2 est disponible

H:WSH>testping 192.168.0.21
192.168.0.21 est indisponible


A toi à présent d'adapter "testping.bat" à tes besoins ...

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
Avatar
gblazquez
"** Brillant msieur bellamy j'ai teste et ca roule
meme si moi j'avais pas demande :-)