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 :

StdErr, StdOut et limite à 4096Bytes


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 1
    Par défaut StdErr, StdOut et limite à 4096Bytes
    Bonjour,

    Je fais face à un problème avec un VBScript, l'exécution d'un programme à l'aide de l'objet WScript.Shell et la lecture de StdErr et StdOut.

    Concrètement, lorsque j'exécute un programme depuis mon VBScript, et que le texte envoyé en sortie (stdout) par ce programme est supérieur à 4096 bytes, il m'est impossible de lire stderr. En effet, lorsque j'essaie de lire stderr, le script freeze tout simplement à cet endroit.

    J'ai trouvé un workaround, à savoir rediriger stderr dans un fichier, le lire à l'aide de mon script afin de savoir s'il y a eu une erreur ou non, puis je traite normalement mon stdout.

    Ca fonctionne très bien mais je voudrais savoir si quelqu'un ici a déjà eu le même problème et s'il a trouvé une solution différente de la mienne.

    Code test.vbs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    set WshShell = WScript.CreateObject("WScript.Shell")
    Exec01="C:\tmp\test.bat"
    Set Cmd01=WshShell.exec(Exec01)
    Cmd01_Error=Cmd01.StdErr.ReadAll ' cette partie là fait freezer le script lorsque stdout > 4096B
    WScript.Echo(Cmd01_Error)
    do while Cmd01.StdOut.AtEndOfStream <> True 
    		Cmd01_Line=Cmd01.StdOut.ReadLine
    		WScript.Echo(Cmd01_Line)
    Loop
    Code test.bat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo "blablablabla"
    @echo "blablablabla"
    @echo "blablablabla"
    @echo "blablablabla"
    rem jusqu'à ce que la sortie dépasse 4096B

    Merci d'avance et bonne continuation pour ce forum très utile.

    RWD.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Un des problèmes connus avec des méthodes comme readall est la consomation importante de mémoire, de ressource lorsqu'il est appellé pour un fichier très gros.
    Avec le readline ce problème ne se pose pas.

    Bon bien sur un fichier de 4096 bytes est si ENORME qu'il est impossible à lire ... Non sans rire, je suis étonné que cela ne fonctionne pas avec un si petit fichier. C'est quoi l'environnement d'exécution du script ?

  3. #3
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    la réponse
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. [Batch] Rediriger stderr stdout dans fichier pour plusieurs commande
    Par Fylhan dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 07/07/2010, 00h07
  2. Lecture Asynchrone STDOUT & STDERR
    Par ecatum dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2007, 17h50
  3. Réponses: 2
    Dernier message: 27/10/2006, 17h07
  4. [wxPython] redirection des commentaires stderr/stdout
    Par Guigui_ dans le forum wxPython
    Réponses: 5
    Dernier message: 28/12/2005, 22h58
  5. [Runtime][exec]Récupérer les stdout ET stderr
    Par yveslamand dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 20/05/2005, 13h37

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