Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2843 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Batch avec ping

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Batch avec ping

n°1981731
double002
Posté le 07-04-2010 à 21:24:21  profilanswer
 

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!

mood
Publicité
Posté le 07-04-2010 à 21:24:21  profilanswer
 

n°1981736
xaeon
Profil: TT
Posté le 07-04-2010 à 21:32:04  profilanswer
 

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
n°1981738
double002
Posté le 07-04-2010 à 21:37:27  profilanswer
 

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 :/

n°1981742
xaeon
Profil: TT
Posté le 07-04-2010 à 21:42:00  profilanswer
 

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:

n°1981745
double002
Posté le 07-04-2010 à 21:47:09  profilanswer
 

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

n°1981748
xaeon
Profil: TT
Posté le 07-04-2010 à 21:50:40  profilanswer
 

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 ^^'

n°1981749
double002
Posté le 07-04-2010 à 21:56:30  profilanswer
 

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
n°1981751
xaeon
Profil: TT
Posté le 07-04-2010 à 22:19:08  profilanswer
 

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 :)

n°1981755
double002
Posté le 07-04-2010 à 22:31:51  profilanswer
 

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

n°1981784
double002
Posté le 08-04-2010 à 01:50:29  profilanswer
 

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!

mood
Publicité
Posté le 08-04-2010 à 01:50:29  profilanswer
 

n°1981862
snafu8
Posté le 08-04-2010 à 10:38:03  profilanswer
 

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.

n°1981951
double002
Posté le 08-04-2010 à 13:26:14  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Batch avec ping

 

Sujets relatifs
Batch - Variable d'environnement[Résolu] Batch to C
[BATCH]Ping avec variableBoucle ping dans un batch pour détecter une déconnexion
batch, commande ping et rapport d'erreurBatch Ping -> Extinction PC
batch dos-windows - extraire 2ème ligne de la commande ping[batch] ping tant que...
probleme de noob .. ping et batchbatch qui ping toutes les machines d'un réseau
Plus de sujets relatifs à : Batch avec ping


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR