Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: juntacadaveres en 14 Marzo 2019, 20:35 pm



Título: Programación en batch. Comparar una cadena con un entero
Publicado por: juntacadaveres en 14 Marzo 2019, 20:35 pm
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


Título: Re: Programación en batch. Comparar una cadena con un entero
Publicado por: Baphomet2204 en 15 Marzo 2019, 18:54 pm
Esta es una posible solución

Código:
@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