Batch : script PING

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
obijes
Batcheur occasionnel
Messages : 3
Enregistré le : 14 mars 2011 18:39

Batch : script PING

Message 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
plopi
Batcheur débutant
Messages : 16
Enregistré le : 04 mars 2011 00:10

Re: Batch : script PING

Message 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
obijes
Batcheur occasionnel
Messages : 3
Enregistré le : 14 mars 2011 18:39

Re: Batch : script PING

Message par obijes »

Très bonne explication, et ça fonctionne très bien !
merci !
obijes
Batcheur occasionnel
Messages : 3
Enregistré le : 14 mars 2011 18:39

Re: Batch : script PING

Message 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...
Répondre