Calcul dans un script .bat
Titi
-
cs_PaTaTe Messages postés 1471 Date d'inscription Statut Contributeur Dernière intervention -
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
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
-
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-
-
@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
-
-
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-
-
-
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 -
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 :) -
-