Partage
  • Partager sur Facebook
  • Partager sur Twitter

[BATCH] Condition if else

Sujet résolu
    19 juin 2017 à 10:09:31

    Bonjour tout le monde,

    Je suis actuellement entrain de coder un script batch afin de lancer un fichier.txt tout simplement.
    Le script fonctionne bien mais maintenant je souhaite ajouter des conditions afin si le fichier s'est bien lancé ou pas.

    Je suis donc parti sur ce code là :

    @ECHO OFF
    
    C:\Users\azerty\Desktop\fichier.txt
    
    IF %errorlevel% EQU 0 (GOTO :reussir) ELSE (GOTO :echouer)
    
    :reussir
    ECHO %errorlevel%
    
    :echouer
    ECHO %errorlevel%
    
    PAUSE

    J'ai également essayer avec 

    if %errorlevel% == 0 GOTO reussir
    if %errorlevel% NEQ == 0 GOTO echouer

    Mais dans les deux méthodes le script passent à travers les deux conditions alors qu'il m'affiche deux fois "0".
    Je ne comprends pas... Pouvez-vous m'expliquer svp ? 

    • Partager sur Facebook
    • Partager sur Twitter
    Starcraft Broodwar is BACK !  MP pour jouer ensemble ! :D
      19 juin 2017 à 10:18:57

      Salut

      Essaye ça :

      if %errorlevel% ==0 (goto :reussir)



      -
      Edité par Golden Panda 19 juin 2017 à 10:19:22

      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2017 à 10:23:51

        Golden Panda a écrit:

        Salut

        Essaye ça :

        if %errorlevel% ==0 (goto :reussir)



        -
        Edité par Golden Panda il y a 2 minutes


        Si je retire la partie (:echouer) ça fonctionne parfaitement puisqu'il n'y a pas d'erreur.
        Mais comme je veux gérer les erreurs il me faudrait une partie (else).

        Comme je l'ai expliqué plus haut, il n'y a pas d'erreur mais le script passer quand même dans la section de l'erreur

        • Partager sur Facebook
        • Partager sur Twitter
        Starcraft Broodwar is BACK !  MP pour jouer ensemble ! :D
          19 juin 2017 à 10:26:36

          J'ai très bien compris, je t'ai donné une correction de ta syntaxe il faut l'appliquer à tes deux conditions.

          Je te propose une solution que tu n'essaye même pas. En plus tu n'as même pas pris la peine de chercher avant de poster, alors voilà des liens utiles :

          https://windows.developpez.com/cours/ligne-commande/?page=page_25

          http://steve-jansen.github.io/guides/windows-batch-scripting/part-5-if-then-conditionals.html

          http://www.commentcamarche.net/forum/affich-11528065-batch-if-else

          https://stackoverflow.com/questions/5683583/windows-batch-files-if-else

          Bonne lecture

          • Partager sur Facebook
          • Partager sur Twitter
            19 juin 2017 à 10:30:13

            Golden Panda a écrit:

            J'ai très bien compris, je t'ai donné une correction de ta syntaxe il faut l'appliquer à tes deux conditions.

            Je te propose une solution que tu n'essaye même pas. En plus tu n'as même pas pris la peine de chercher avant de poster, alors voilà des liens utiles :

            https://windows.developpez.com/cours/ligne-commande/?page=page_25

            http://steve-jansen.github.io/guides/windows-batch-scripting/part-5-if-then-conditionals.html

            http://www.commentcamarche.net/forum/affich-11528065-batch-if-else

            https://stackoverflow.com/questions/5683583/windows-batch-files-if-else

            Bonne lecture


            D'une je m'excuse, j'ai lu trop vite du coup je n'avais pas remarqué la petite différence entre ton code et le mien qui était le == au lieu EQ.

            J'ai pris le temps de chercher... Cela faisait plus d'une heure que je recherchais et testais différente manière.. 

            Merci quand même d'avoir pris le temps de m'envoyer des liens pour clarifier les conditions en batch.

            ---------------------------------------

            Voici la solution que j'ai trouvé dans mon cas :

            @ECHO OFF
            REM Run JAVA script in order to modify file
            
            
            C:\Users\azerty\Desktop\fichierz.txt
            
            IF %errorlevel% EQU 0 (
            	echo Ok  %errorlevel%
            ) else (
            	echo Nok  %errorlevel%
            )
            
            PAUSE

            Bon courage à tous !

            -
            Edité par Hiitch 19 juin 2017 à 11:42:17

            • Partager sur Facebook
            • Partager sur Twitter
            Starcraft Broodwar is BACK !  MP pour jouer ensemble ! :D
              19 juin 2017 à 10:32:16

              Plus d'une heure à chercher et tu n'as pas trouvé ? C'est impossible, soit tu sais pas chercher, soit tu ne t'y ai pas donné à fond..

              Enfin bref, si jamais tu n'arrives toujours pas reviens nous demander

              • Partager sur Facebook
              • Partager sur Twitter
                5 avril 2020 à 15:07:26

                J'ai compris ton erreur... Le problème n'est absolument pas le "==" à la place du "EQU" mais plus que tu avais mis "neq ==0", donc en fait ton ordinateur traduisait "Si %errorlevel% n'est pas égal à égal à 0", Donc tu l'embrouilles.

                Tu aurais simplement dû mettre "

                if %errorlevel% == 0 GOTO reussir

                if %errorlevel% NEQ 0 GOTO echouer

                ",

                Autrement dit "

                Si %errorlevel% est égal à 0 aller à :reussir

                Si %errorlevel% est différent de 0 aller à :echouer

                "

                Essaies avec ça (et désolé pour le retard, je suis assez nouveau sur OC.

                Edit: Dites moi si je me trompe j'ai toujours accepté les critiques constructives et estime qu'apprendre est le meilleur remède contre l'ignorance.

                -
                Edité par LinkrusteAddict 5 avril 2020 à 15:08:38

                • Partager sur Facebook
                • Partager sur Twitter
                  5 avril 2020 à 15:58:55

                  J'avais fermé ce sujet par erreur - le déterrage apporte bien ici quelque chose.

                  -
                  Edité par Lamecarlate 18 avril 2020 à 18:35:48

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Pas d'aide concernant le code par MP, le forum est là pour ça :)

                  [BATCH] Condition if else

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown