Calcul dans un script .bat

Titi -  
cs_PaTaTe Messages postés 2126 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
A voir également:

2 réponses

floxi Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   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
X260
 
Et pour le puissances ??
0
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
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
grofwa Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   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
cs_PaTaTe Messages postés 2126 Date d'inscription   Statut Contributeur Dernière intervention   496
 
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   Statut Membre Dernière intervention   30
 
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   Statut Contributeur Dernière intervention   496
 
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   Statut Membre Dernière intervention   30
 
0