Batch avec ping

Batch avec ping - Divers - Programmation

Marsh Posté le 07-04-2010 à 21:24:21    

Bonsoir à tous!
J'essaie de réaliser un fichier .bat qui essaie de pinger une adresse, et qui, si ça ne réussit pas, lance un autre batch sui se trouve dans le même répertoire.
Si le ping réussit, le batch peut se fermer.
Voilà ce que j'ai testé, sans succès:

Code :
  1. @echo off
  2. ping -n 1 xxx.xxx.xxx.xxx
  3. if %ERRORLEVEL%==1 goto FALSE
  4. if %ERRORLEVEL%==0 goto EXIT
  5. :FALSE
  6. start "restart.bat"
  7. goto EXIT
  8. :EXIT
  9. exit


 
Ca ne fonctionne pas comme ceci. Je ne sais pas quoi faire de plus ^^
Si quelqu'un pouvait m'aider :)
Merci bien!

Reply

Marsh Posté le 07-04-2010 à 21:24:21   

Reply

Marsh Posté le 07-04-2010 à 21:32:04    

qu'est-ce qui ne fonctionne pas au juste? le démarrage de restart.bat?

 

Sinon tu as essayé avec la syntaxe:

Code :
  1. IF ERRORLEVEL n GOTO xxx           //où n est un code retour de la commande précédente.
 

Edit :: j'ai pris 2 secondes pour tester ton code et voici ce que j'obtiens:

 
Code :
  1. @echo off
  2. ping -n 1 xxx.xxx.xxx.xxx
  3. if ERRORLEVEL 1 goto FALSE
  4. if ERRORLEVEL 0 goto EXIT
  5. :FALSE
  6. echo TOTO
  7. goto EXIT
  8. :EXIT
  9. pause
 

En essayant avec des IP locales, par de souci; en essyant une IP qui n'est pas déclarée sur mon LAN j'ai mon message qui s'affiche. Je pense que ton problème vient plus du restart.bat qui est entre quotes (c'est déjà louche)...


Message édité par xaeon le 07-04-2010 à 21:38:26
Reply

Marsh Posté le 07-04-2010 à 21:37:27    

En fait, lorsque je lance ce bat, une fenêtre dos s'ouvre mais reste vierge.
Si j'enlève @echo off, je vois que la commande

Code :
  1. ping xxx.xxx.xxx.xxx


se répète indéfiniment.
Forcément le fichier restart.bat ne se lance pas =)
 
Sinon ça fait pareil avec l'autre syntaxe :/

Reply

Marsh Posté le 07-04-2010 à 21:42:00    

pas possible que la commande ping se répète à l'infini avec un argument du type -n 1 vu que par définition ca veut dire que tu ne testes qu'une fois.
 
As tu essayé de mettre un  

Code :
  1. start C:\restart.bat       //en mettant ton restart.bat dans la racine du lecteur C:

Reply

Marsh Posté le 07-04-2010 à 21:47:09    

Pourtant c'est ce qui se passe :/
Ca me fait pareil en mettant le tout à la racine.

Reply

Marsh Posté le 07-04-2010 à 21:50:40    

Personnellement je bloque, sachant que en faisant des ECHO ca fonctionne très bien chez moi, il me semble étrange qu'une simple commande ping te fasse ce genre d'erreur.
 
J'ai regardé en echo ON, meme en lassant des xxx.xxx.xxx.xxx, il va m'annoncer un GOTO FALSE puis un ECHO TOTO puis une PAUSE :) Après à voir avec ce que contient le fameux restart.bat ^^'

Reply

Marsh Posté le 07-04-2010 à 21:56:30    

restart.bat:

Code :
  1. taskkill /f /im openvpn-gui-1.0.3.exe
  2. taskkill /f /im openvpn.exe
  3. "C:\Program Files (x86)\OpenVPN\bin\openvpn-gui-1.0.3.exe" --connect vpn1.ovpn
  4. exit
 

Rien de spécial donc ^^
Celui-ci fonctionne très bien.
Je veux juste que ces commandes soient lancées si l'adresse IP n'est pas pingée.

 

Sinon ça me faisait pareil avec un autre .bat, qui supprimait des routes.
En lancement manuel, ça se répétait continuellement.
Mais en l'exécutant comme une tâche planifiée, plus de problème.
Maintenant, ce bat ne veut même pas se lancer en tâche planifiée.

 

De plus, j'ai remarqué que le processus cmd.exe restait ouvert.
C'est bien étrange...


Message édité par double002 le 07-04-2010 à 21:57:10
Reply

Marsh Posté le 07-04-2010 à 22:19:08    

Tant que la fenetre est active le processus cmd.exe va tourner, après c'est vraiment étrange et si tu fais avec un

Code :
  1. IF NOT ERRORLEVEL 1 (
  2. EXIT
  3. ) ELSE (
  4. CALL restart.bat
  5. )


Sait-on jamais :)

Reply

Marsh Posté le 07-04-2010 à 22:31:51    

Toujours rien :(
Merci quand même ^^
 
C'est bien bien étrange...

Reply

Marsh Posté le 08-04-2010 à 01:50:29    

Bon j'ai trouvé la source du problème: j'avais nommé le fichier ping.bat, et Windows n'a pas aimé ça...
Et l'autre bat qui posait problème s'appelait route...
 
M'enfin, c'est réglé, je te remercie de ton aide xaeon =)
A bientôt!

Reply

Marsh Posté le 08-04-2010 à 01:50:29   

Reply

Marsh Posté le 08-04-2010 à 10:38:03    

c'est peut être rien, mais chez moi ping -n veut dire "numerical output only" pour envoyer un seul paquet, il faut faire ping -c 1 adresse.

Reply

Marsh Posté le 08-04-2010 à 13:26:14    

Oui c'est bien un seul paquet que je veux tester :)
Je n'ai pas besoin d'en tester plus.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed