Partage
  • Partager sur Facebook
  • Partager sur Twitter

Conditions batch

J'essaie de vérifier une variable.

    11 juin 2019 à 18:38:33

    Bonjour ou bonsoir à tous.

    Je suis actuellement le cours sur Batch, et j'en suis à la partie sur les condition if else. 

    La variable prend bien ce que j'entre dans la console, je pense que ça vient donc de la condition en elle même. J'ai cherché un bout de temps, mais j'ai fini par décider de venir ici. En espérant que vous puissiez m'aider, voici mon code.

    @echo off
    color 3
    title Test
    
    set /p choix=Voulez-vous faire une addition?
    
    if %choix% equ Oui
    (
    	set /p Nombre1=Choisissez un premier nombre... 
    	set /p Nombre2=Un autre. 
    	set /a Resultat=%Nombre1%+%nombre2%
    
    	echo Ce n'est qu'un début.
    	echo.
    	echo En attendant regardes plutot : %Nombre1% + %Nombre2% = %Resultat%
    	echo La console est formelle.
    
    	pause > nul
    )
    
    else (exit)
    • Partager sur Facebook
    • Partager sur Twitter
      12 juin 2019 à 15:05:42

      ca ne m'aide pas vraiment :/ Mais merci tout de même.
      • Partager sur Facebook
      • Partager sur Twitter
        12 juin 2019 à 17:11:18

        Bonjour,

        J'avais mal situé ton problème.

        Le 1er : la syntaxe de ton if est incorrecte.

        Le 2nd : Vu que tu déclare et utilise des variables au sein d'un bloc, il faut utiliser l'expansion de variable retardée.

        Voici le code qu'il en ressort :

        @echo off
        setlocal EnableDelayedExpansion
        color 3
        title Test
        
        set /p choix=Voulez-vous faire une addition?
         
        if %choix% equ Oui (
            set /p Nombre1=Choisissez un premier nombre...
            set /p Nombre2=Un autre.
            set /a Resultat=!Nombre1!+!nombre2%!
         
            echo Ce n'est qu'un début.
            echo.
            echo En attendant regardes plutot : !Nombre1! + !Nombre2! = !Resultat!
            echo La console est formelle.
         
            pause > nul
        ) else (
        	exit
        )
        

        Exemple de la syntaxe IF :

        IF EXIST nomfichier. (
                del nomfichier.
            ) ELSE (
                echo nomfichier. introuvable.
            )
        




        • Partager sur Facebook
        • Partager sur Twitter
          12 juin 2019 à 17:23:38

          Ho! Donc le "setlocal" va activer les variables retardées c'est ça?

          Et les variables sont écrites entres ! plutôt que % dans les if? Si j'ai bien compris. Merci encore de votre temps.

          • Partager sur Facebook
          • Partager sur Twitter

          Conditions batch

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown