Calcul dans un script .bat

Fermé
Titi - 27 juin 2004 à 19:19
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 - 11 févr. 2017 à 12:42
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
A voir également:

2 réponses

floxi Messages postés 145 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 15 avril 2016 94
Modifié par baladur13 le 29/08/2011 à 09:55
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
Et pour le puissances ??
0
@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
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
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
28 juin 2004 à 11:51
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
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 493
13 nov. 2015 à 12:03
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
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 30
Modifié par poparnassus le 27/09/2016 à 01:04
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
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 493
26 oct. 2016 à 21:22
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
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 30
22 janv. 2017 à 03:25
0