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 :

Problème renvoie dans fichier LOG


Sujet :

VBScript

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut Problème renvoie dans fichier LOG
    Bonjour à tous,

    Je rencontre actuellement un problème dans l'exécution d'un script VBS.
    Tout fonctionne bien, sauf que je n'arrive pas à obtenir de LOG dans le dossier spécifié, aucun fichier ne se crée.
    Ce script lance un .EXE nommé clientautocad.exe (qui permet en fait de dessiner nos produits dans Autocad depuis notre ERP, ndlr sans rentrer dans les détails), et lui passe un certains nombres de paramètres dont le chemin du fichier de logs en sortie.
    Le dessin se fait bien sous Autocad je n'ai pas d'erreur, en revanche aucun fichier de logs n'est généré.
    Lorsque je lance directement l'exécutable dans une fenêtre de commande, le log se crée bien, en revanche rien depuis le .VBS.

    Voici un extrait de mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if ProfilUtil = "DAO" or ProfilUtil = "ADM" then
        'Commande Creation Fichier dwg  
        if CadDwgFicExt <> "---" then 
            DcmdDwg = "W:\vs\Macrovs\exec\clientautocad.exe " & CadSrv & " " & CadUtiMac & " " & CadDwgFicExt & " " & CadDwgExeMod & " " & Guillemet & CadDwgRepFicGen & Guillemet & " -in " & Guillemet & CadDwgNomFicGen & Guillemet & " -out " & Guillemet & CadDwgSorRep & Guillemet & fleche & Guillemet & CadFicTra & Guillemet
       Else
            DcmdDwg = ""
        End If
        'Commande Lancement Autocad
        Dcmd = "W:\vs\Macrovs\exec\clientautocad.exe " & CadSrv & " " & CadUtiMac & " " & CadFicExt & " " & CadExeMod & " " & Guillemet & CadRepFicGen & Guillemet & " -in " & Guillemet & CadNomFicGen & Guillemet & " -out " & Guillemet & CadSorRep & Guillemet & fleche & Guillemet & CadFicTra & Guillemet
    Guillemet et fleche sont des variables que je positionne de la manière suivante :
    Guillemet = chr(34) : correspond à "
    fleche = chr (62) : correspond à >

    Merci d'avance à tous, si ce n'est pas assez précis merci de me le dire.

    Cordialement ;

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Ne fallait-il pas passer par l'objet Shell ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set oShell = CreateObject("WScript.Shell")
    '...............
    '...............
    oShell.Run DcmdDwg, i, True ' i=0 pour masquer la fenêtre, i=1 pour l'afficher
    oShell.Run Dcmd, i, True
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    Bonjour,

    D'abord un grand merci pour ta réponse. Je suis technicien d'exploitation / infrastructure et pas développeur (projet à cheval sur les deux services et c'est tombé chez nous), aussi je me permet : Où dois-je positionner ce bout de code ? Je vais essayer quand même car j'ai de bonnes bases.

    En fait on dirai qu'il ignore complètement la commande ">CadFicTra" qui est sensée me créer le fichier de logs.

    Merci encore

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Salut;

    La ligne 1 du code peut être placée avant la définition(affectation) de "DcmdDwg".
    Les lignes 4 et 5 sont à mettre après avoir défini les variables DcmdDwg et Dcmd
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    Bonjour et merci ;
    Cela ne fonctionne pas. Je pense quand même que le code (que je n'ai pas écris !) pose soucis. Je ne pense pas qu'on puisse générer un fichier de log de cette manière à partir d'un VBS.
    Je suis tombé en fouinant sur ce type de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim fso, shl
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    set shl = createobject("wscript.shell")
    shl.run "command  /c ipconfig /all > c:\ip.txt",0,true
    Ce dernier lance un ipconfig /all et redirigie le résultat dans un fichier c:\ip.txt
    Ne faudrait-il pas m'orienter vers ce type de solutions ? Mais le problème est que moi je passe un certains nombre de paramètre à un .EXE dont le chemin du fichier de sortie, qui est généré normalement pas le ">fichierlog".

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    C'est quand même très étrange, j'ai continué mes tests.
    Dans mon programme, si je mets cela dans mon programme à la place de l'exécutable, j'obtiens bien un log correspond à la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DcmdDwg="command  /c ipconfig /all > c:\temp\ip.txt"
    [..]
    Dcmd="command  /c ipconfig /all > c:\temp\ip.txt"
    si je fais simplement cela directement dans une fenêtre de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\clientautocad.exe > c:\temp\fictra.txt
    Cela fonctionne, j'ai un log avec une erreur concernant les paramètres.

    Si je lance cela dans mon VBS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DcmdDwg="c:\clientautocad.exe > c:\temp\fictra.txt"
    RIEN !

    J'en perds mon VBS

  7. #7
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Bonjour,

    Tu as dans les 2 derniers messages que tu as postés toutes les solutions à ton problème : mettre 'command /c' avant ta commande lancée par la fonction Run de l'objet WshShell pour que le renvoi de la sortie vers un fichier texte fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim shl 
    set shl = createobject("wscript.shell")
    DcmdDwg="c:\clientautocad.exe > c:\temp\fictra.txt"
    shl.run "command  /c " & DcmdDwg,0,true
    Si ça ne fonctionne pas, poste l'ensemble de ton script afin que l'on voie ce qui peut être problématique

    Bonne continuation.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    salut ! J'éviterai également l'espace après le > à ta place ...
    DcmdDwg="c:\clientautocad.exe >c:\temp\fictra.txt"

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    Salut,

    Merci à tous pour vos réponses ! Il faut simplement mettre "cmd /c" devant la suite de commande, au niveau des variables.
    Je pense que cela pourra aider d'autres personnes !!

    Je ne trouve pas pour mettre en "résolu" ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les fichiers log
    Par gosu14 dans le forum Administration
    Réponses: 1
    Dernier message: 04/08/2008, 19h07
  2. [XPATH] problème lecture dans fichier XML
    Par DiamonDonald dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/02/2008, 09h57
  3. Problèmes Ecriture dans Fichiers Texte
    Par JmL40 dans le forum Langage
    Réponses: 13
    Dernier message: 26/09/2007, 14h04
  4. [AJAX] Fichier ASP appelé par AJAX
    Par dragonfly dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 14/06/2007, 11h14
  5. problème path dans fichier zip
    Par jpastier dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 20/05/2006, 16h06

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