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

Scripts/Batch Discussion :

Syntaxe plusieurs If indentés


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 60
    Points
    60
    Par défaut Syntaxe plusieurs If indentés
    Bonjour à tous,

    J'écris un fichier batch pour exécuter 4 programmes successivement. Pour chaque programme exécuté, je vérifie s'il y a eu des erreurs, si oui, je m'envoie un email et le script s'arrête, sinon, je passe au programme suivant.

    Le problème est que j'ai beaucoup de mal à indenter mes if correctement (j'ai appris ce "langage" avant hier).

    Voici un premier exemple qui fonctionne correctement : J'exécute le premier programme, si correct, le deuxième s'exécute, sinon, je reçois un email. (J'ai simplifié le code pour que vous voyez bien l'algorithme)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "Exec program 1"
    type "Program1.log" | findstr /I /C:"Error:"
     
    if %errorlevel%==0 (
    Envoi_email
    )else (
    "Exec Program2"
    type "Program2.log" | findstr /I /C:"Error:"
    
    )
    ça marche comme je veux. Par contre, dès que j'essaye d'ajouter la suite: à savoir la vérification d'erreur suite à l'exécution du programme 2:

    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
    "Exec program1"
    
    type "Program1.log" | findstr /I /C:"Error:"
    
    
    if %errorlevel%==0 (
    
    EnvoiEmail
    
    )else (
    
    "Exec Program2"
    type "Program2.log" | findstr /I /C:"Error:"
    
    if %errorlevel%==0 (
    EnvoiEmail
    
    )else(
    EnvoiEmailExecutionTErminee
    )

    Dans ce cas, seul mon program1 s'exécute. S'il y a une erreur, je ne reçois pas l'email, s'il n'y a pas d'erreur, le program2 ne s'exécute plus. C'est comme s'il ne faisait plus rien après le 1er if.

    Voilà. Est-ce que quelqu'un voit où est le problème ?

    Autre question : Est-ce que les lignes vides et espaces importent lorsqu'on écrit un batch ?

    Merci

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Tu peux fairre comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    findstr /I /C:"Error:" program1.log && call:mail 1 || echo programme 1 OK
    findstr /I /C:"Error:" program2.log && call:mail 2 || echo programme 2 OK
    findstr /I /C:"Error:" program3.log && call:mail 3 || echo programme 3 OK
    findstr /I /C:"Error:" program4.log && call:mail 4 || echo programme 4 OK
    
    exit/b
    
    :mail
    echo envoie mail erreur programme %1
    pause
    exit
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. syntaxe plusieurs instructions dans une fonction
    Par sebac dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/03/2010, 12h55
  2. Une erreur de syntaxe à plusieurs endroits
    Par herzak dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2010, 10h33
  3. aide syntaxe plusieurs feuilles
    Par SOPSOU dans le forum Langage
    Réponses: 1
    Dernier message: 15/08/2007, 19h19
  4. syntaxe action script chaine sur plusieurs lignes
    Par totoche dans le forum Flash
    Réponses: 2
    Dernier message: 27/10/2006, 12h26
  5. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20

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