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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Exécution d'un ping et redirection vers un fichier log

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Exécution d'un ping et redirection vers un fichier log

n°1148781
dooggie
Posté le 13-07-2005 à 11:11:03  profilanswer
 

Bonjour,
voila je voudrais fair une appli qui test une liste d'adresse IP et qui stocke le résultat dans un fichier log (un traitement est prévu sur ce fichier, mais le pb n'est pas là)
 
Voila mon code (qui se déclenche quand je clique sur un boutton) :

Code :
  1. retMsgb = Shell("ping 127.0.0.1 > " & App.Path & "\EtatServeur.log", 1)


 
mais ça ne marche pas !!
la fenêtre DOS s'ouvre et se ferme tout de suite, et mon fichier EtatServeur.log est toujours vide
Le PID que je récupère dans retMsgb est différent de 0, donc à priori, la commande s'est bien déroulé
 
par contre quand je fait  

Code :
  1. retMsgb = Shell("ping 127.0.0.1", 1)


la fenêtre DOS s'ouvre et je vois bien qu'il envoie 4 paquets de données vers l'IP spécifié
 
j'ai essayé de fairer directement dans une fenêtre DOS :
 ping 127.0.0.1 > EtatServeur.log
et là ça marche sans problème !!!    :(  
 
quelqu'un pourrait il m'aider à faire une redirection vers un fichier SVP ?

mood
Publicité
Posté le 13-07-2005 à 11:11:03  profilanswer
 

n°1230417
Joyrock
Posté le 25-10-2005 à 14:03:29  profilanswer
 

J'ai le même problème avec l'utilisation de libcurl en shell :/
Qq peut nous aider ?

n°1293645
veepee
Posté le 27-01-2006 à 16:56:37  profilanswer
 

La commande VB Environ("COMSPEC" ) retourne l'executable de l'environnement de commande.
Cet exe lancé avec le paramètre /c permet de lancer une commande assortie d'une redirection sous la commande Shell.
De plus, si le chemin de l'un des fichiers spécifiés dans la commande comporte des espaces, il faut inclure la spécification du fichier entre guillemets.
Subtilité: il faut encore englober le tout dans une ultime paire de guillemets pour que ça marche quand les deux parties de la commande comportent des guillemets.
Cela donne un truc bien tarabiscoté mais qui marche dans tous les cas.
 
Supposons que l'on veuille rediriger la sortie d'un prog "XYZ" dans un fichier "XYZ.log" placé dans le même répertoire:
     
MyCommand = Environ("COMSPEC" ) & " /c " & """" & """" & MyPath & "\XYZ" & """" & " > " & """" & MyPath & "\XYZ.log" & """" & """"
Shell MyCommand, vbHide

 
   
On peut aussi contourner la difficulté des espaces dans le chemin en se plaçant dans le repertoire voulu,
puis en executant la commande avec un chemin relatif au repertoire courant.
Cette methode fait un peu moins "soupe aux guillemets" mais nécéssite plus d'instructions.
 
WBDrive = Split(MyPath, ":" )(0)
WBPath = Split(MyPath, ":" )(1)
     
If WBDrive <> "" Then ChDrive WBDrive
     
If WBPath = "" Then
    ChDir "\"
Else
    ChDir WBPath
End If
     
Debug.Print "CurDir ", CurDir 'Vérification du répertoire courant.
     
MyCommand = Environ("COMSPEC" ) & " /c " & ".\XYZ" & " > " & ".\XYZ.log"
Shell MyCommand, vbHide

 
 
Le code ci-dessus a été testé sous Excel 2003 VBA.  
 
Inspiré de: http://www.vbforums.com/archive/in [...] 64219.html


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Exécution d'un ping et redirection vers un fichier log

 

Sujets relatifs
menu déroulant à partir d'un fichier texte?localiser un séparateur de champ dans un fichier
Lien vers ftp avec login et mot de passeJNI : generation du fichier .dll
mettre le contenu d'un fichier en paramètrefichier desktop.ini
Liste des fichier et sous-répertoireListe fichier repertoire distant
Applet ou JS¨P de choix d'un fichierlogiciels de recherche de fichier
Plus de sujets relatifs à : [VB] Exécution d'un ping et redirection vers un fichier log


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