Page 1 sur 1

Batch : script PING

Posté : 14 mars 2011 18:41
par obijes
Peut on m'expliquer pourquoi cette commande ne fonctionne pas ?

FOR /F %%I in (machines.txt) DO ping -n 1 %%I && IF NOT ERRORLEVEL 0 echo %%I >> pingNONOK.txt

par contre celle-ci fonctionne :

FOR /F %%I in (machines.txt) DO ping -n 1 %%I && IF ERRORLEVEL 0 echo %%I >> pingOK.txt

je débute en batch, merci de votre compréhension...


Je tiens quand même à garder une boucle FOR, et essayer de faire mon script pour trier les PC qui ping et ceux qui ne ping pas...

merci de voter aide

Re: Batch : script PING

Posté : 14 mars 2011 22:11
par plopi
Salut

je n'ai pas l'explication exacte mais je pense que le "&&" doit avoir du mal avec "IF ERROLEVEL NOT" ... car ce n'est pas logique comme syntaxe : on pourrai le traduire par "si OK donc non ..." je ne sais pas si je suis vraiment clair :roll:

Personnellement j'écrirais cette ligne comme ceci (testé et ça fonctionne ) : && = "si dernière commande OK" OU || = "si dernière commande KO"...

Code : Tout sélectionner

FOR /F %%I in (machines.txt) DO ping -n 1 %%I && ( echo %%I >> pingOK.txt ) || ( echo %%I >> pingNONOK.txt )
 
Enjoy

Re: Batch : script PING

Posté : 15 mars 2011 13:46
par obijes
Très bonne explication, et ça fonctionne très bien !
merci !

Re: Batch : script PING

Posté : 16 mars 2011 13:40
par obijes
bonjour plopi,

et bien bizarrement, cette ligne de commande n'a plus l'air de fonctionner....
j'ai juste tester cette ligne et ça tourne en boucle , la fenetre DOS se ferme et les 2 fichiers sont vides....
alors là je pige plus.

pourtant mes 2 fichiers que j'ai recréé ont un nom correcte et ma ligne de commande est exactement la même...