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 :

VBS : masquer les messages d'erreur


Sujet :

VBScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Points : 61
    Points
    61
    Par défaut VBS : masquer les messages d'erreur
    Bonjour,

    Est il possible de ne pas faire apparaitre la boite de dialogue 'Windows Script Host' lorsqu'un script plante.
    Je ne veux pas que mon script continue, je veux qu'il sorte mais silencieusement

    J'ai essayé du on error resume next ou on error goto 0 en debut de script mais rien ni fait.

    Merci par avance.
    Julien

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    utilise cscript pour lancer ton script ..



    ou paramètre le comme "moteur" par défaut :

    Comment changer l'interpréteur de script par défaut ?

  3. #3
    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 : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Les erreurs sont à gérer avec l'objet Err.
    Il vaut 0 tant qu'il n'y a pas d'Err.

    Ce que tu peux faire, c'est après chaque action critique, c'est tester l'objet, et en cas d'erreur, tu quittes le script par un "quit" si je ne me trompe pas.

    EN etant plus barbare tu fait un on error goto end, et tu positionnes end en fin du fichier de script, et tu fais un quit.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  4. #4
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Points : 61
    Points
    61
    Par défaut
    Bonjour et merci pour vos réponses.

    Je suis allé dans le type de fichier windows et j'ai changer le lancer de wcsript en cscript mais je n'ai vue aucune différence.

    Je n'ai pas compris ou mettre la commande que tu m'a donné bbil (wscript H:cscript).
    Au début de mon script vbs? Dans mon cmd qui lance le vbs?

    Ced je ne peux pas mettre un controle sur toutes les lignes potentiellement dangereuses car cela représente un boulot monstre.
    Et j'ai testé le on error goto end, mais la commande n'est pas reconnue.

    Merci par avance pour vos précisions.
    Julien

  5. #5
    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 : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    EN etant plus barbare tu fait un on error goto end, et tu positionnes end en fin du fichier de script, et tu fais un quit.
    A force de travailler sur plusieurs langages différents je m'enmèle les pinceaux.
    Ce que je t'ai dit ne fonctionne qu'en VB6 et pas en VBS.

    Ced je ne peux pas mettre un controle sur toutes les lignes potentiellement dangereuses car cela représente un boulot monstre.
    Tu n'as pas trop le choix.
    Soit tu laisses le scripts planter, et générer sa fenêtre.
    Soit tu utilises on error resume next et ton script continue son execution même en cas d'erreur à tes risques et périls.
    Soit tu traites chaque partie de ton programme.
    Il y a une chose qui marche théoriquement, c'est que si tu mets un on error resume next dans une fonction, le on error resume next n'a de porté que pour cette fonction.
    Donc avec une combinaison de on error resume next, if err.number == ..., et de subdivision en fonction, tu peux plus ou moins t'en sortir, mais bon il y a du travail.

    Il te faudrait en fait le try catch (global sur ton programme dans ce cas) mais VBS ne semble pas le supporter, uniquement sur VB6, et VB.Net (je ne sais pas sou VBA si les applications permettent d'accéder à un try catch).
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  6. #6
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    perso je fais ca aussi, a chaque traitement, une fonction avec son on error resume next ou pas

    ca limite la portée des resume, et pour debugger c'est impec', juste a commenter une ligne sur la fonction qui génère l'erreur.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Points : 61
    Points
    61
    Par défaut
    Bonjour messieurs,

    Merci de nouveau pour vos nouvelles réponses mais je ne vais malheureusement pas pouvoir vous suivre. Car je dois appliquer la méthode sur une cinquantaine de script qui font pour certain 1000 lignes.
    Le travail serait titanesque et je ne dispose malheureusement pas de tout ce temps.

    Alors qu'il semblerait que la solution de bbil s'applique d'un coup à l'ensemble de mes scripts. Je vais essayer de creuser dnas ce sens parce que pour l'instant je n'ai pas reussi à la mettre en place.

    Si jamais quelqu'un en sait un peu plus, je suis preneur.

    Et encore merci aux personnes qui se sont interessées au sujet.
    Julien

  8. #8
    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 : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    tu peux déjà vérifier le fonctionnement en lançant un de tes scripts avec cscript dans une console dos.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Points : 61
    Points
    61
    Par défaut
    En effet cela fonctionne tres bien. Pour les futurs personnes qui ont le probleme voici donc comment j'ai fait :

    J'ai créé un CMD.
    Je lance mon vbs ainsi

    cscript C:\test.vbs
    et pour savoir si le script a planter

    toujours dans le CMD

    retour=%errorlevel% avec %errorlevel% = 1 si le script plante.
    Pour donner une autre valeur a errorlevel (a la fin du vbs par exemple pour dire qu'il est aller au bout).
    Dans le vbs :
    wscript.quit(valeur) avec valeur comme variable
    wscript.quit(0) avec une constante.

    Ainsi si retour = 1 alors plantage
    si retour = 0 alors tout ok.

    Bonne continuation

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

Discussions similaires

  1. [VBS]Désactiver les messages d'erreur
    Par Edoxituz dans le forum VBScript
    Réponses: 6
    Dernier message: 24/02/2006, 15h38
  2. Rediriger les messages d'erreur
    Par goblin dans le forum Langage
    Réponses: 3
    Dernier message: 25/12/2005, 20h04
  3. Réponses: 5
    Dernier message: 16/08/2005, 12h15
  4. [Message d'erreur] gérer les message d'erreurs
    Par heid dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2004, 14h57
  5. recuperer les messages d'erreurs de interbase
    Par devalender dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/06/2004, 11h45

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