Partage
  • Partager sur Facebook
  • Partager sur Twitter

BATCH OPÉ

    13 décembre 2018 à 11:46:50

    Bonjour, je débute le "Batch" j'ai beau avoir chercher un peu partout.. j'ai réussit a demander la saisie d'un utilisateur et a récupérer cette saisie.

    Mais lorsque je souhaite effectuer un calcul avec ces saisies.. impossible.

    Voici a quoi cela pourrait ressembler : 

    SET nb=

    SET nb1=

    SET /p nb=Saisir une valeur 

    SET /p nb1=Saisir une autre valeur 

    echo.

    SET /a res = (%nb% - %nb1%)

    echo %res%

    )

    malheureusement cela ne fonctionne pas

    -
    Edité par Louis Thopa 13 décembre 2018 à 14:21:35

    • Partager sur Facebook
    • Partager sur Twitter
      13 décembre 2018 à 16:29:13

      Bonjour,

      Comme ceci :

      @echo off
      SET nb=
      SET nb1=
      
      SET /p nb=Saisir une valeur 
      SET /p nb1=Saisir une autre valeur 
      echo.
      SET /a res=%nb%-%nb1%
      
      echo %res%
      pause
      exit
      

      De manière générale, évite les espaces autour du signe égale.

      • Partager sur Facebook
      • Partager sur Twitter
        14 décembre 2018 à 7:54:44

        Bonjour, merci de votre réponse, enfaite la chose que je voudrai faire, se trouve dans une structure "if" donc je ne met pas de pause/exit a la fin, mon code n'étant pas fini après ceci.

        C'est exactement la forme que j'ai : 

        @echo off
        title OUFFF
        mode con cols=100 lines=30
        color 0A
        
        	::Applique le format UTF 8
        chcp 65001
        
        //Ici le menu avec echo...
        
        if %choix%==b ( 
        SET nb=
        SET nb1=
        SET /p nb=Saisir une valeur 
        SET /p nb1=Saisir une autre valeur 
        echo.
        SET /a res=(%nb%-%nb1%)
        echo %res%
        )

        lorsque je lance le ".bat" il m'annonce : il manque un opérande       Commande ECHO désactivée

        -
        Edité par Louis Thopa 14 décembre 2018 à 8:15:41

        • Partager sur Facebook
        • Partager sur Twitter
          14 décembre 2018 à 10:03:59

          Bonjour,

          Vu que tout se passe dans un if, tu dois utiliser l’expansion de variable retardée.

          • Partager sur Facebook
          • Partager sur Twitter
            15 décembre 2018 à 10:46:00

            Je remet un message pour débug le topic (avant d'entrer dans le topic, il est marqué "-2 messages").
            • Partager sur Facebook
            • Partager sur Twitter
              20 décembre 2018 à 14:40:07

              Désolé, je suis un vrai débutant.. et je ne sais pas comment m'y prendre, je ne comprends vraiment pas les explications du sujet de l'expansion de variable retardée...
              • Partager sur Facebook
              • Partager sur Twitter
                20 décembre 2018 à 20:20:38

                Bonjour,

                Pour te montrer du concret :

                Avec l'expansion de variable retardée :

                @echo off
                setlocal EnableDelayedExpansion
                title OUFFF - Avec l'expansion de variable retardee
                mode con cols=100 lines=30
                color 0A
                
                ::Applique le format UTF 8
                chcp 65001
                
                set choix=b
                if "%choix%"=="b" (
                	SET nb=
                	SET nb1=
                	SET /p nb=Saisir une valeur
                	SET /p nb1=Saisir une autre valeur
                	echo.
                	SET /a res=!nb!-!nb1!
                	echo !res!
                )
                pause
                exit
                

                Sans l'expansion de variable retardée :

                @echo off
                title OUFFF - Sans l'expansion de variable retardee
                mode con cols=100 lines=30
                color 0A
                
                ::Applique le format UTF 8
                chcp 65001
                
                set choix=b
                if "%choix%"=="b" (goto :Choix_b)
                echo Le choix n'est pas b
                pause
                exit
                
                :Choix_b
                SET nb=
                SET nb1=
                SET /p nb=Saisir une valeur
                SET /p nb1=Saisir une autre valeur
                echo.
                SET /a res=%nb%-%nb1%
                echo %res%
                echo fin du label ":Choix_b"
                pause
                exit
                




                • Partager sur Facebook
                • Partager sur Twitter
                  21 décembre 2018 à 9:15:42

                  Zaibai a écrit:

                  Bonjour,

                  Pour te montrer du concret :

                  Avec l'expansion de variable retardée :

                  @echo off
                  setlocal EnableDelayedExpansion
                  title OUFFF - Avec l'expansion de variable retardee
                  mode con cols=100 lines=30
                  color 0A
                  
                  ::Applique le format UTF 8
                  chcp 65001
                  
                  set choix=b
                  if "%choix%"=="b" (
                  	SET nb=
                  	SET nb1=
                  	SET /p nb=Saisir une valeur
                  	SET /p nb1=Saisir une autre valeur
                  	echo.
                  	SET /a res=!nb!-!nb1!
                  	echo !res!
                  )
                  pause
                  exit
                  

                  Sans l'expansion de variable retardée :

                  @echo off
                  title OUFFF - Sans l'expansion de variable retardee
                  mode con cols=100 lines=30
                  color 0A
                  
                  ::Applique le format UTF 8
                  chcp 65001
                  
                  set choix=b
                  if "%choix%"=="b" (goto :Choix_b)
                  echo Le choix n'est pas b
                  pause
                  exit
                  
                  :Choix_b
                  SET nb=
                  SET nb1=
                  SET /p nb=Saisir une valeur
                  SET /p nb1=Saisir une autre valeur
                  echo.
                  SET /a res=%nb%-%nb1%
                  echo %res%
                  echo fin du label ":Choix_b"
                  pause
                  exit
                  





                  Super, Merci infiniment, cela fonctionne correctement mais seulement avec un seul "if" si j'en met 2, cela fonctionne pour 1 mais pas pour l'autre.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  BATCH OPÉ

                  × 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