Votre question

aide fichier BAT

Tags :
  • Batch
  • Programmation
Dernière réponse : dans Programmation
13 Octobre 2006 13:05:50

bonjour,

je suis en train de realisé un petit fichier bat, sans aucune conaissance, en cherchant un peu partout!


voila la forme de mon fichier:

-------------------------------------
: boucle

variable

-divers commande

ping vers XXX

ping vers YYY

goto boucle

---------------------------------------


je ne sais pas si c realisable en batch, je souhaiterais:

-que si le ping vers XXX a reussi, il y é un enregistrement de la variable et du ping dans un fichier texte XXX.txt


que si le ping vers YYY a reussi, il y é un enregistrement dans un fichier texte YYY.txt

que si le ping vers XXX ET YYY a reussi, il y et un enregistrement dans XXXYYY.txt


trop complexe pour du batch?

ou realisable?

merci d'avance!

Autres pages sur : aide fichier bat

13 Octobre 2006 13:36:06

possible si tu as la valeur de retour de ping.
en shell linux/unix, un echo $? donne la valeur de retour de la derniere commande utilisé.
Il faut trouvé s'il y a un equivalent en batch
13 Octobre 2006 14:17:32

salut,
j'y connais pas grand chose, mais il me semble que errorlevel, retourne la valeur de l'action en cours ou précédente. à tester, si tu trouves, je veux bien que tu le signales stp :) 
Contenus similaires
13 Octobre 2006 15:42:47

salut, j'ai regardé error level, j'ai pas trouvé ce que je souhaité! (ou alors j'ai pas reussi a l'appliquer)

mais!!! j'ai reussi a faire ce que je voulais faire!! et ca marche a merveille!
-----------------------------------------

@echo off
cd\
echo 192.168.1.2>temp1.txt
for /F %%i IN (temp1.txt) DO (PING -n 2 -w 1000 %%i | FIND "TTL=">NUL
IF NOT ERRORLEVEL 1 goto ok
)
goto non




:non
echo Pas de reponse!
goto fin




:o k
echo ping reussi!
echo %variable%>>XXX.txt
goto fin



:fin
pause


merci de votre aide!
13 Octobre 2006 15:46:47

Oh, ben c'est toi qui a fait le plus gros.
13 Octobre 2006 19:05:53

oui enfin, c plutot en surfant, ca sort pas de moi!!! voila, suject clos ;) 
a b L Programmation
13 Octobre 2006 20:07:32

Pour info, tu peux remplacer:
  1. echo 192.168.1.2>temp1.txt
  2. for /F %%i IN (temp1.txt) DO (PING -n 2 -w 1000 %%i | FIND "TTL=">NUL


par:
  1. for /F %%i IN ('echo 192.168.1.2') DO (PING -n 2 -w 1000 %%i | FIND "TTL=">NUL


Ce qui revient à:
  1. PING -n 2 -w 1000 192.168.1.2 | FIND "TTL=">NUL


Le find ne servant à rien puisque tout est redirigé vers NUL, c'est équivalent à:
  1. PING -n 2 -w 1000 192.168.1.2>NUL


Donc, pour simplifier:
  1. @echo off
  2. PING -n 2 -w 1000 192.168.1.2>NUL
  3. IF NOT ERRORLEVEL 1 goto ok
  4.  
  5. echo Pas de reponse!
  6. goto fin
  7.  
  8.  
  9. :ok
  10. echo ping reussi!
  11.  
  12. :fin
  13. autre


Ps: c'est bien %ERRORLEVEL% qui fait le boulot ;) 
13 Octobre 2006 21:21:15

Citation :
Ps: c'est bien %ERRORLEVEL% qui fait le boulot ;) 



abuser du copier coller tue le savoir!!! (honte a moi)

effectivement, j'ai meme pas cherché a comprendre le fonctionement, j'ai juste modifié ce dont j'avais besoin



merci pour la simplification du code, je vais modifier ca ca fera plus propre!


bon mon petit batch marche comme je prevu je suis bien content :D 


un dernier truc, pour pofiné, y a t'il moyen de recuperer l'etat de la connection internet? (connectivité limité, conflit IP...)
c surtout le conflit IP qui m'interesse!

moyen de recuperer ca quelque par en ligne de commande???

sinon pas grave, merci beaucoup pour votre aide!!
a b L Programmation
14 Octobre 2006 00:01:08

Je sais pas trop, regarde du côté IPCONFIG (pour les IP), NETSTAT (liste des connexions actives).
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS