Calcul dans un script .bat

Titi -  
cs_PaTaTe Messages postés 1471 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir à tous,

je souhaiterais effectuer des calculs dans un script .bat. Est- ce que cela semble réalisable. Si oui comment initialiser une variable et l'incrémenter? Merci d'avance pour votre aide

TITI

2 réponses

  1. floxi Messages postés 153 Statut Membre 94
     
    Bonjour,
    tu n'a même pas besoin d'initialiser t'es variables, tu fait comme ceci:
    @echo off  
    set /a variable=(2*5)/2  
    echo Le résultat est %variable%  
    pause


    Tu peut également priorétiser tes calculs grâce aux parenthèse.

    Si tu veut plus d'info regarde sur Publicité supprimée Modération CCM
    Bon courage

    Flox
    12
    1. X260
       
      Et pour le puissances ??
      0
    2. yaourt39
       
      @echo off
      
      :: Variable ::
      set nom=Calculette
      set auteur=MexangaFR
      set ver=Alpha 1.0
      ::::::::::::::
      :: Code non-protégé et servis d'exemple pour les debutants ::
      title %nom% - %ver% par %auteur%
      :deb
      color F
      cls
      echo.
      echo [1] Additionner
      echo [2] Soustraire
      echo [exit] Quitter
      echo.
      echo.
      echo.
      echo.
      set /p choice=Votre choix:
      IF %CHOICE% equ 1 goto add
      IF %choice% equ 2 goto sous
      IF %choice% equ exit exit
      IF NOT DEFINED CHOICE goto deberror
      :deberror
      color C
      cls
      echo.
      echo [1] Additionner
      echo [2] Soustraire
      echo [exit] Quitter
      echo.
      echo ::::::Une erreur s'est produis:::::
      echo ::::::Error1: %choice% n'est pas disponible::::::
      echo.
      set /p choiceerror=Votre choix:
      IF %CHOICEERROR% equ 1 goto add
      IF %choiceerror% equ 2 goto sous
      IF %choiceerror% equ exit exit
      IF NOT DEFINED CHOICE goto deberror2
      :deberror2
      color C
      cls
      echo.
      echo [1] Additionner
      echo [2] Soustraire
      echo [exit] Quitter
      echo.
      echo ::::::Une erreur s'est produis:::::
      echo ::::::Error1: %choiceerror% n'est pas disponible::::::
      echo.
      set /p choiceerror=Votre choix:
      IF %CHOICEERROR% equ 1 goto add
      IF %choiceerror% equ 2 goto sous
      IF %choiceerror% equ exit exit
      IF NOT DEFINED CHOICE goto deberror
      goto deb
      :add
      CLS rem Ajouté apres la video
      echo.
      set /p add1=Quel nombre voulez-vous additionner?
      set /p add2=Et ?
      set /a add = %add1% + %add2%
      echo Resultat: %add1% + %add2% = %add%
      echo.
      echo [2] Soustraire
      echo [retour] Retourner au debut
      echo [exit] Quitter
      echo.
      set /p choiceadd=:
      IF %CHOICEADD% EQU 2 (cls & goto sous)
      IF %CHOICEADD% EQU retour (cls & goto deb)
      IF %CHOICEADD% equ exit exit
      IF NOT DEFINED CHOICE goto deb
      goto deb
      :sous
      cls rem Ajouté apres la video
      echo.
      set /p sous1=Quel nombre voulez-vous soustraire?
      set /p sous2=Et ?
      set /a sous = %sous1% - %sous2%
      echo Resultat: %sous1% - %sous2% = %sous%
      echo.
      echo [2] Additionner
      echo [retour] Retourner au debut
      echo [exit] Quitter
      echo.
      set /p choicesous=:
      IF %CHOICEADD% EQU 1 (cls & goto sous)
      IF %CHOICEADD% EQU retour (cls & goto deb)
      IF %CHOICEADD% equ exit exit
      IF NOT DEFINED CHOICE goto deb
      1
  2. gfdgdf
     
    non tu ne peux pas

    le seul moyen est d'integrer sur les machines ou le script tournera des outils GNU comme expr (commande unix)

    expr $TOTO + 1 pour incrementer la valeur de TOTO
    2
    1. grofwa Messages postés 440 Statut Membre 479
       
      Tout dépend...
      Si tu travailles sous win2k ou XP, tu peux utiliser la commande étendue :

      SET /a toto=2+3
      ECHO %toto%

      te renverra 5

      Michael.

      Ne vous souciez pas de n'être pas remarqué ; cherchez 
      plutôt à faire quelque chose de remarquable [Confucius]
      0
    2. cs_PaTaTe Messages postés 1471 Date d'inscription   Statut Contributeur Dernière intervention   503
       
      Tout ça n'est valable que pour des entiers, à partir du moment où tu as des chiffres à virgules les outils Unix me semble indispensables. A moins qu'il existe des solutions mais je ne les connais pas ^^
      0
    3. poparnassus Messages postés 462 Statut Membre 31
       
      je deterre, mais pour calculer une puissance en batch on fait comme ca On cree la fonction !!!! )
      Rien n'est impossible, votre incapacité a resoudre un probleme ne veut pas dire que c'est infaisable!


      setlocal EnableDelayedExpansion

      set /P taille_mdp="la valeur de la puissance qui sera appliquer:"

      echo taille mdp=!taille_mdp!

      set /P var_taille="entrez le chiffre a calculer"
      cls

      :puissance
      for /L %%a in (1,1,!taille_mdp!) do (
      set puissance=!puissance!*!var_taille!
      )
      ::compt nbr de chiffre
      :compt_nbr_combinaison
      set /A compt_puissance+=1
      set var_puissance=!puissance:~%compt_puissance%,1!
      if not "!var_puissance!"=="" goto compt_nbr_combinaison


      set /A puissance_n=!puissance:~1,%compt_puissance%!

      echo !puissance_n!
      pause
      exit
      0
    4. cs_PaTaTe Messages postés 1471 Date d'inscription   Statut Contributeur Dernière intervention   503
       
      Hors sujet puisque ce code renvoie toujours un entier ... Je parlais AUSSI de calcul de nombres à virgule (quelque soit l'opérateur), et ça le batch ne sait pas faire nativement ! Je confirme ce que je dis !

      Donc avant de parler de la probable incapacité des autres, on lit bien le problème avant de donner une solution ^^

      Sans rancune :)
      0