récuperer la sorti d'un shell

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

récuperer la sorti d'un shell

Messagepar Michael DELIQUE » 21 Juin 2012 à 14:06

Hello

en LS j’exécute une commande via un shell, ça affiche une console avec le résultat de dans, mais j'ai besoin de récupérer le résultat.

soit directement soit par l'intermédairie d'un fichier.

je trouve pas comment faire

mon code en ce moment

Code : Tout sélectionner
Commande = {ma commande > c:\temp\file222.txt}
Set vrShell = CreateObject("WScript.Shell")
   Call vrShell.Run(Commande,3,true)
   Set vrShell = Nothing


ça affiche bien le résultat mais impossible de le passer dans un fichier
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: récuperer la sorti d'un shell

Messagepar Michael DELIQUE » 21 Juin 2012 à 14:54

bon la seule solution trouvé, est de créé a la volé un point bat avec la command dedans

puis de lancer le bat via le sheel avec une redirection de sorti vers un fichier texte
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: récuperer la sorti d'un shell

Messagepar Michael DELIQUE » 23 Juin 2012 à 09:05

une autre solution plus sympa

passé par la variable "comspec"

Commande = {ma commande > c:\temp\file222.txt}
Set vrShell = CreateObject("WScript.Shell")
Call vrShell.Run({%comspec% /c "}+Commande+{"},3,true)
Set vrShell = Nothing

le souci c'est que si la commande contient des des doubles quotte ça bug !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: récuperer la sorti d'un shell

Messagepar Michael DELIQUE » 25 Juin 2012 à 10:31

une autre solution qui ne marche pas a tous les coups

Code : Tout sélectionner
Public Function ShellPrint(wCommand As String, wFileToPrint As String)
   %REM
Description: permet de renvoyer une Command dos dans un fichier via un Shell
   attention ne fonctionne pas forcement s'il ya des double quotte dans la commande
   /C cmd no visible
   /k cmd visible
   %END REM
   
   Dim vrShell As Variant
   
   On Error GoTo CatchError

   If Trim(wCommand) = "" Then
      Error 9999,"wCommand is Empty"
   End If

   If Trim(wFileToPrint) = "" Then
      Error 9999,"wFileToPrint is Empty"
   End If

   Set vrShell = CreateObject("WScript.Shell")
   Call vrShell.Run({cmd = %comspec% /c "}+Trim(wCommand)+{" > }+Trim(wFileToPrint),0,True)
   Set vrShell = Nothing

   Exit Function
CatchError:
   MsgBox "("+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Error " + CStr(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Line # "+Cstr(Erl),16," ERROR !"
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: récuperer la sorti d'un shell

Messagepar Michael DELIQUE » 29 Juin 2012 à 11:11

bon j'avance pas, ma command est trop longue et bug le command.com (merci windows).
meme en réduisant au maximum je n'arrive pas a récupérer le résultat.

je suis passé par des api et (shellexecute) mais impossible de générer un fichier de retour ou de récupérer le résultat... si quelu'un a une idée je suis preneur
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy


Retour vers Développement