IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Exécution programme avec script


Sujet :

VBScript

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut Exécution programme avec script
    Bonjour,

    Désolé pour ma question très basique, mais je suis débutant complet en VBscript.

    J'ai besoin de faire un petit programme très simple, mais je ne m'en sors pas, malgré toute les informations présente sur ce forum...

    Je cherche simplement à appeler un programme avec un script associé, et de passer des arguments (via la fonction inputbox) au script associé au programme appelé.

    Par rapport aux infos récoltées, mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Dim oShell, oExec, IC, SOFTPath, ScriptPath
     
    SOFTPath = C:\chemin\programme.exe
    ScriptPath = C:\chemin\SCRIPT.txt
     
    INPUT = inputbox ("Valeur ? = ")
     
    Set oShell = CreateObject("WScript.Shell")
     
    Set oExec = oShell.Exec ("""" & SOFTPath & """ """ & ScriptPath & """ 
    """ & INPUT & """")
     
    Do While oExec.Status=0
    	WScript.Sleep 100
    Loop
    Evidemment, ça me marche pas... ce bout de code doit paraître bien naïf, mais je n'arrive plus à avancer... quelqu'un pourrait-il me donner un coup de pouce ?

    Merci beaucoup,

    JC

    PS : j'utilise Windows 7

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut

    il y quoi dans le Script.txt
    Donc a première vue :
    dans ces deux lignes il manque les doubles quotes "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SOFTPath = C:\chemin\programme.exe
    ScriptPath = C:\chemin\SCRIPT.txt
    donc ajoute "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SOFTPath = "C:\chemin\programme.exe"
    ScriptPath = "C:\chemin\SCRIPT.txt"

  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut

    essayer cet exemple en ajoutant un MsgBox pour récuperer la commande à exécuter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Dim oShell, oExec, IC, SOFTPath, ScriptPath
    SOFTPath = "Cmd /k"
    ScriptPath = "calc.exe"
     
    INPUT = inputbox("Valeur ? = ")
     
    Set oShell = CreateObject("WScript.Shell")
    MsgBox SOFTPath & " " & ScriptPath & " " & INPUT
    Set oExec = oShell.Exec ( SOFTPath & " " & ScriptPath & " " & INPUT)
     
    Do While oExec.Status=0
    	WScript.Sleep 100
    Loop

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut
    Merci pour ta réponse... ça m'a permis de comprendre quelques mécanismes, mais ça ne fonctionne toujours pas...

    Plus précisément, ce que je souhaite faire est appeler le logiciel R, avec un script de traitement statistique (*.R), auquel je passerais des variables via l'inputbox.

    Mais je n'y arrive toujours pas...

    J'ai fait évolué le code tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Dim oShell, oExec, INPUT, RcmdPath, Rcmd, RScriptPath
     
    RcmdPath = "Program Files\R\R-2.13.1\bin\i386\"
    Rcmd = "Rcmd.exe"
    RScriptPath = "C:\Users\Documents\ESSAISCRIPT.R"
     
    INPUT = inputbox ("INPUT = ")
     
    Set oShell = CreateObject("WScript.Shell")
     
    MsgBox & RScriptPath " " & INPUT
     
    Set oExec = oShell.Exec (cd \)
    Set oExec = oShell.Exec (cd RcmdPath &)
    Set oExec = oShell.Exec ( & Rcmd & " "open" """ & RScriptPath """ " & INPUT	 )
     
    Do While oExec.Status=0
    	WScript.Sleep 100
    Loop
    Ce que je voudrais faire pour commencer, c'est arriver à aller via le prompt DOS dans le chemin :
    Program Files\R\R-2.13.1\bin\i386\
    puis exécuter :
    Rcmd.exe open "C:\Users\Documents\ESSAISCRIPT.R"

    J'ai aussi essayé avec la fonction run, mais je bloque également...

    Ensuite, le passage des arguments dans R sera la seconde étape...

    Merci beaucoup pour l'aide !

    JC

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut

    Essayez ce code et dis-moi ca donne quoi comme résultat ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim oShell,Com,Command,Resultat
    Set oShell = CreateObject("WScript.Shell")
    INPUT = inputbox("Valeur ? = ")
    Com = "cmd /K CD c:\Program Files\R\R-2.13.1\bin\i386\ & Rcmd.exe open C:\Users\Documents\ESSAISCRIPT.R"
    Command = Com & " " & Input
    Msgbox command,64,"Commande a executer"
    Resultat = oShell.run(Command,1,True)

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut
    Merci, on doit pas être loin de la solution.
    Le chemin n'est pas reconnu, mais c'est peut-être à cause la syntaxe d'appel du logiciel.
    Je vais encore faire quelques essais. Si je galère trop, peut-être qu'un nouveau (et j'espère dernier) post suivra.

    Un grand merci en tout cas,

    JC

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut
    Je pense que j'y suis presque, c'est juste un problème de syntaxe pour l'objet com.

    J'obtiens le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte
    Le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Com = "cmd /K cd \" & "cd Program Files\R\R-2.13.1\bin\i386\" & "Rcmd open """"C:\Users\Documents\ESSAISCRIPT.R"""""

    et si je le faisais manuellement, je ferais :
    1. cmd /K
    2. cd \
    3. cd Program Files\R\R-2.13.1\bin\i386\
    4. Rcmd open "C:\Users\Documents\ESSAISCRIPT.R"

    (testé, ça marche)

    Je me demande si le problème ne vient pas du fait qu'il faille mettre "" pour appeler le script.

  8. #8
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut
    Avec ceci ça donne quoi comme résultat ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim oShell,Com,Command,Resultat
    Set oShell = CreateObject("WScript.Shell")
    INPUT = inputbox("Valeur ? = ")
    Com = "cmd /K CD \ & CD %ProgramFiles%\R\R-2.13.1\bin\i386\ & Rcmd.exe open C:\Users\Documents\ESSAISCRIPT.R"
    Command = Com & " " & Input
    Msgbox command,64,"Commande a executer"
    Resultat = oShell.run(Command,1,True)
    ou bien avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim oShell,Com,Command,Resultat
    Set oShell = CreateObject("WScript.Shell")
    INPUT = inputbox("Valeur ? = ")
    Com = "cmd /K CD \ & CD ""c:\Program Files\R\R-2.13.1\bin\i386\"" & Rcmd.exe open C:\Users\Documents\ESSAISCRIPT.R"
    Command = Com & " " & Input
    Msgbox command,64,"Commande a executer"
    Resultat = oShell.run(Command,1,True)

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut
    Merci de ta réponse et de ta patience !!!!

    Non, définitivement ça n'y est encore pas. Je pense vraiment que le problème vient de la gestion des double quote.

    Pour que ça marche manuellement, il faut vraiment qu'ils y soient lors de la déclaration du chemin du script R :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Rcmd.exe open "C:\Program Files\R\R-2.13.1\bin\ESSAISCRIPT.R"
    Je pense que ces double quote sont mal exprimés dans le script.

    J'ai essayé de le changer un peu, pour essayer de les indiquer plus facilement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim oShell,Com,Command,Resultat, SCRIPT
    Set oShell = CreateObject("WScript.Shell")
    INPUT = inputbox("Valeur ? = ")
    SCRIPT = "" "C:\Program Files\R\R-2.13.1\bin\ESSAISCRIPT.R" ""
    Com = "cmd /K CD \ & CD ""c:\Program Files\R\R-2.13.1\bin\i386\"" & Rcmd.exe open & SCRIPT"
    Command = Com & " " & Input
    Msgbox command,64,"Commande a executer"
    Resultat = oShell.run(Command,1,True)
    Mais dans ce cas, le VBS plante....

    Si j'essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SCRIPT = "C:\Program Files\R\R-2.13.1\bin\ESSAISCRIPT.R"
    'SCRIPT' n'est pas reconnu en tant que commande interne...


  10. #10
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut
    Tu as changer le chemin de votre script ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rcmd.exe open "C:\Program Files\R\R-2.13.1\bin\ESSAISCRIPT.R"
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rcmd.exe open "C:\Users\Documents\ESSAISCRIPT.R"
    Donc il y a un problème de quotes et d'espaces je crois donc pour ne pas faire plus simple copie ton script et le RCmd dans votre dossier système et essayer dans ce chemin

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut
    oui, justement, j'avais aussi essayé en mettant tout dans le même chemin, pour simplifier.
    En tout cas, le problème doit bien venir de la.
    Je vais encore un peu bidouiller, ça devrait bien finir par marcher !!!
    Merci beaucoup,

    JC

  12. #12
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 843
    Par défaut
    Est-ce-que vous avez une documentation sur cette Commande Externe Rcmd.exe ? pour voir mieux les paramètres à passer et comment utiliser un script de connexion ; si oui poste nous le lien.
    et c'est quoi votre environemment de travail ?

  13. #13
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Peut être utiliser Chr(34) à la place de ", l'interprétation est quelque fois mieux comprise par le compilateur.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  14. #14
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 10
    Par défaut
    Hello,

    OK, merci beaucoup, je vais essayer de m'en sortir avec tout ça.
    Je vous dirais quel était le pb lorsque je l'aurais résolu (si j'y arrive.... :-) )

    Bonne soirée,

    JC

Discussions similaires

  1. Exécution d'un script ant avec un code JAVA
    Par nibor2luxe dans le forum ANT
    Réponses: 1
    Dernier message: 23/01/2008, 13h32
  2. Exécution d'un script avec un outil ROSE
    Par locus dans le forum Rational
    Réponses: 2
    Dernier message: 08/11/2007, 11h43
  3. exécution d'un script PHP avec wget
    Par Dud225 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/06/2007, 15h31
  4. exécuter des programmes avec python
    Par piotrgavriloff dans le forum Général Python
    Réponses: 1
    Dernier message: 24/06/2007, 01h09
  5. Programmation crontab avec script shell
    Par burhud dans le forum Linux
    Réponses: 3
    Dernier message: 05/12/2006, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo