Programación en batch. Comparar una cadena con un entero

Iniciado por juntacadaveres, 14 Marzo 2019, 20:35 PM

0 Miembros y 1 Visitante están viendo este tema.

juntacadaveres

Hola
estoy empezando en esto de programar, estudio primero de Asir
y tengo una duda con la programación con archivos.bat
quiero que el usuario pueda poner un valor a una variable
sé que esto se logra con un set /p
sin embargo, quiero que los valores estén restringidos solo a números, no a cadenas te textos

set /p num="dame un numero"

obvio pues si el usuario pusiese una letra
no podría hacer operaciones aritmética con dicho valor. saludos

Baphomet2204

#1
Esta es una posible solución


@echo off

:ESNUMERO
echo.
set/p number= "Ingrese un numero: "
if not defined number (echo ERROR: No se ha ingresado nada && goto:ESNUMERO)
set "variable=false"
for /f "delims=abcdefghijklmnopqrstuvwxyzñABCDEFGHIJKLMNOPQRSTUVWXYZÑ" %%a in ("%number%") do set "variable=true"
if ["%variable%"]==["true"] (
if %number% LSS 0 (goto ESNUMERO)
echo se ha ingresado en numero %number%
pause>>nul
exit /b 0
) else (
echo ERROR: Solo se pueden ingresar numeros
goto :ESNUMERO
)


PD: este código tiene sus limites en cuanto a números negativos
$Diseñando_vida

while(vivas)
{
       Come();
       //Duerme();
       Programa();
       Repite();
}