Bonjour,
J'ai un problème avec mon script qui ne fonctionne pas.
Je cherche a faire un ping sur un routeur et en fonction de la réponse du ping a modifier l adresse ip du pc de manière dynamique.
voici mon code
ping -n 1 192.168.3.202 | find /i "TTL" > NUL
IF errorlevel 1 (goto site1 ) else (goto site2)
:site1
rem ------ le routeur n'a pas repondu on bascule sur l'adresse ip de l'autre site
netsh interface ip set address "Connexion au r‚seau local" static 192.168.1.1 255.255.255.0 192.168.1.202 1
netsh interface ip set dns "Connexion au r‚seau local" static 192.168.1.9 primary
netsh interface ip add dns "Connexion au r‚seau local" 192.168.1.11 index=2
goto SORTIR
:site2
netsh interface ip set address "Connexion au r‚seau local" static 192.168.3.70 255.255.255.0 192.168.3.202 1
netsh interface ip set dns "Connexion au r‚seau local" static 192.168.3.9 primary
netsh interface ip add dns "Connexion au r‚seau local" 192.168.3.11 index=2
:SORTIR
exit
Alors quand je teste en mode batch je vais toujours que dans la boucle 1 car le reponse du find est toujours 1
alors que lorsque je teste la commande avec un echo de la valeur de retour, dans une invite cmd, j'ai bien un fonctionnement normal ( a savoir 1 ou 0 selon le cas).
édit: c'est a dire sans le redirect vers nul
comme ca :
ping -n 1 192.168.3.202 | find /i "TTL"
la réponse est bonne en fonction de mon cas.
mais si je fais un echo de errorlevel dans l'instruction avec redirect ping -n 1 192.168.3.202 | find /i "TTL" > nul la valeur du errorlevel est toujours 1 quelque soit le cas...
Auriez vous une idée du problème?
Merci
Olivier
Partager