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
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