Cálculo en un script .bat
Titi
-
cs_PaTaTe Mensajes publicados 1471 Fecha de registro Estado Colaborador Última intervención -
cs_PaTaTe Mensajes publicados 1471 Fecha de registro Estado Colaborador Última intervención -
Buenas noches a todos,
me gustaría realizar cálculos en un script .bat. ¿Es viable? Si es así, ¿cómo puedo inicializar una variable y aumentarla? Gracias de antemano por su ayuda
TITI
me gustaría realizar cálculos en un script .bat. ¿Es viable? Si es así, ¿cómo puedo inicializar una variable y aumentarla? Gracias de antemano por su ayuda
TITI
2 respuestas
no, no puedes
la única forma es integrar en las máquinas donde el script se ejecute herramientas de GNU como expr (comando de unix)
expr $TOTO + 1 para incrementar el valor de TOTO
la única forma es integrar en las máquinas donde el script se ejecute herramientas de GNU como expr (comando de unix)
expr $TOTO + 1 para incrementar el valor de TOTO
je desentierro, pero para calcular una potencia por lotes se hace así. ¡Creamos la función!
¡Nada es imposible! Su incapacidad para resolver un problema no significa que no sea factible.
¡Nada es imposible! Su incapacidad para resolver un problema no significa que no sea factible.
setlocal EnableDelayedExpansion
set /P taille_mdp="el valor de la potencia que se aplicará:"
echo taille mdp=!taille_mdp!
set /P var_taille="introduzca el número a calcular"
cls
:puissance
for /L %%a in (1,1,!taille_mdp!) do (
set puissance=!puissance!*!var_taille!
)
::contar número de cifras
: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
Fuera de tema ya que este código siempre devuelve un entero... También hablaba del cálculo de números decimales (cualquiera que sea el operador), y eso el batch no sabe hacerlo de forma nativa! Confirmo lo que digo!
Así que antes de hablar de la probable incapacidad de los demás, se lee bien el problema antes de dar una solución ^^
Sin rencor :)
Así que antes de hablar de la probable incapacidad de los demás, se lee bien el problema antes de dar una solución ^^
Sin rencor :)
:: Variable ::
set nom=Calculadora
set auteur=MexangaFR
set ver=Alpha 1.0
::::::::::::::
:: Código no protegido y servicio de ejemplo para principiantes ::
title %nom% - %ver% por %auteur%
:deb
color F
cls
echo.
echo [1] Sumar
echo [2] Restar
echo [exit] Salir
echo.
echo.
echo.
echo.
set /p choice=Su elección:
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] Sumar
echo [2] Restar
echo [exit] Salir
echo.
echo ::::::Se ha producido un error:::::
echo ::::::Error1: %choice% no está disponible::::::
echo.
set /p choiceerror=Su elección:
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] Sumar
echo [2] Restar
echo [exit] Salir
echo.
echo ::::::Se ha producido un error:::::
echo ::::::Error1: %choiceerror% no está disponible::::::
echo.
set /p choiceerror=Su elección:
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 Añadido después del video
echo.
set /p add1=¿Qué número quiere sumar?
set /p add2=¿Y?
set /a add = %add1% + %add2%
echo Resultado: %add1% + %add2% = %add%
echo.
echo [2] Restar
echo [retour] Volver al inicio
echo [exit] Salir
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 Añadido después del video
echo.
set /p sous1=¿Qué número quiere restar?
set /p sous2=¿Y?
set /a sous = %sous1% - %sous2%
echo Resultado: %sous1% - %sous2% = %sous%
echo.
echo [2] Sumar
echo [retour] Volver al inicio
echo [exit] Salir
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