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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script pour lancer un programme si le ping ne répond plus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script pour lancer un programme si le ping ne répond plus

n°2040736
seb06bes
Posté le 08-12-2010 à 12:06:26  profilanswer
 

Bonjour,
 
Je viens solliciter votre aide   :)  
 
Le titre du sujet résume le but de mon programme : exécuter un .exe si le ping d'une machine ne répond plus.
 
Mon problème est au niveau de la boucle que je n'arrive pas à créer.
 
Le .bat fonctionne pour le test du ping et l'exécution du programme mais j'aimerai le rentrer dans une boucle pour que le programme se lance une fois que le ping ne répond plus.
 
Voici la ou j'en suis :
 
@echo off
echo test de la connexion de 192.168.201.146
ping -n 2 192.168.201.146
echo %errorlevel%
if errorlevel 1 goto erreur
goto fin
:erreur
cd C:\Users\sebastien\Desktop\Dartfish\
test.exe
:fin
echo on
exit
 
Et ce que je souhaiterai avoir :
 
Tant que ping 192.168.201.146 répond ne rien faire
quand ping 192.168.201.146 ne répond plus
Lancer C:\Users\sebastien\Desktop\Dartfish\test.exe
 
Si vous avez qq conseils
 
Merci

mood
Publicité
Posté le 08-12-2010 à 12:06:26  profilanswer
 

n°2040783
fluminis
Posté le 08-12-2010 à 14:26:14  profilanswer
 

Est-ce que ce lien repond à ta question : http://www.hotline-pc.org/batch.htm
 
Par contre, il va falloir faire attention a ne pas saturer ta machine, et lancer une commande sleep a chaque itération pour mettre ton programme en pause pendant quelques secondes


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°2040785
seb06bes
Posté le 08-12-2010 à 14:34:03  profilanswer
 

Merci pour les conseils avec sleep, je vais lire ca pour trouver une solution.

n°2040797
seb06bes
Posté le 08-12-2010 à 15:00:02  profilanswer
 

Voila ca fonctionne avec ce programme :  
 
@echo off  
echo test de la connexion de 192.168.201.146  
:testping
ping -n 2 192.168.201.146  
echo %errorlevel%  
if errorlevel 1 goto erreur  
goto testping
:erreur  
cd C:\Users\sebastien\Desktop\Dartfish\  
test.exe  
echo on  
exit  
 
Il reste cependant un problème.
 
Quand je débranche le PC pour activer l'alerte je me retrouve avec 2 cas :
 
1. "Délai d'attente de la demande dépassé." => %errorlevel% prend bien la valeur de 1 et mon .exe s’exécute donc tout est ok.
 
2. "Réponse de 192.168.201.122 : Impossible de joindre l'hôte de destination." => La par contre le %errorlevel% prend la valeur 0 donc la boucle continue alors que le ping vers 192.168.201.146 ne répond plus.
Le .exe ne s’exécute pas alors qu'il faudrait qu'il se lance.
 
J'aimerai savoir si vous avez un moyen pour que %errorlevel% prenne la valeur de 1 que l'on soit dans le cas 1. ou bien dans le cas 2. ou si vous savez pourquoi de facon aléatoire j'obtiens le cas1 ou le cas 2.
 
Si vous avez d'autres suggestions n'hésitez pas.  
 
Merci


Message édité par seb06bes le 08-12-2010 à 16:30:07
n°2040985
seb06bes
Posté le 09-12-2010 à 11:04:40  profilanswer
 

Pas d'idées ?

n°2041023
breizhbugs
Posté le 09-12-2010 à 13:29:06  profilanswer
 

Faire une sorte de grep sur la sortie?


---------------
Seul Google le sait...
n°2041065
olivthill
Posté le 09-12-2010 à 14:56:59  profilanswer
 

Utiliser les fichiers .bat est la méthode ancienne pour faire des batchs.
Mais, depuis Windows 95, il existe les fichiers .vbs qui permettent de faire plus de choses et plus simplement.
 
Pour le ping, Microsoft donne la solution avec le script vbs suivant

Set objShell = WScript.CreateObject("WScript.Shell" )
Set objExecObject = objShell.Exec("cmd /c ping -n 3 -w 1000 157.59.0.1" )
Do While Not objExecObject.StdOut.AtEndOfStream
    strText = objExecObject.StdOut.ReadLine()
    If Instr(strText, "Reply" ) > 0 Then
        Wscript.Echo "Reply received."
        Exit Do
    End If
Loop

(source http://technet.microsoft.com/fr-fr [...] n-us).aspx )


Message édité par olivthill le 09-12-2010 à 14:57:20

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script pour lancer un programme si le ping ne répond plus

 

Sujets relatifs
onChange champ formulaire avec affichage de scriptScript qui vérifie si un .exe est déjà lancé
script de download ftpScript shell scripting bash/Linux
script de téléchargementprogramme pour les touches clavier
Utilisation d'un programme provenant de WindowsProgramme du jeu du taquin
[Python] Script crawler Multi-threadQuest-ce qu'un "backend", construction d'un programme avec un backend
Plus de sujets relatifs à : Script pour lancer un programme si le ping ne répond plus


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