Estoy realizando un ejercicio para clases de SIINF y me he encontrado un problema con el control de errores.
Las directrices a seguir son:
1er argumento: Número entero positivo en base decimal.
2º argumento: Número entero positivo que será la base a la que se quiere convertir el primer argumento. Bases admitidas: [2, 16]
Se debe realizar control de errores.
Hasta el punto donde estoy solo me sale el STDOUT que quiero cuando pongo los dos argumentos, pero no me salen los STDERR deseados cuando no pongo algún parámetro de entrada.
En su lugar me sale que no se espera un 2.
Código:
Código:
if "%1" == "" (
echo No ha sido introducido un primer argumento.
echo Por favor, debe introducir dos argumentos para comenzar la ejecucion del script.
goto :fin
) else (
if "%2" == "" (
echo No ha sido introducido un segundo argumento.
echo Por favor, debe introducir dos argumentos para comenzar la ejecucion del script.
goto :fin
) else (
if not "%3" == "" (
echo Ha sido introducido un tercer argumento.
echo Por favor, debe introducir solamente dos argumentos para comenzar la ejecucion del script.
goto :fin
) else (
set "arg1="&for /f "delims=0123456789" %%i in ("%1") do set arg1=%%i
if defined arg1 (
echo El primer argumento a introducir debe ser un entero y ademas positivo.
goto :fin
) else (
set "arg2="&for /f "delims=0123456789" %%j in ("%2") do set arg2=%%j
if defined arg2 (
echo El segundo argumento a introducir debe ser un entero y ademas positivo.
goto :fin
) else (
if %2 LSS 2 (
echo Ha introducido como segundo argumento un numero menor de 2.
echo Debe introducir como segundo parametro un numero entre 2 y 16.
goto :fin
) else (
if %2 GTR 16 (
echo Ha introducido como segundo argumento un numero mayor de 16.
echo Debe introducir como segundo parametro un numero entre 2 y 16.
goto :fin
) else (
echo Los argumentos han sido correctamente introducidos.
echo.
)
)
)
)
)
)
)
:fin
echo.
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
echo + Gracias por utilizar nuestro script: %0 +
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pause
cls
STDERR (cuando no pongo 1 o los 2 argumentos)
Código:
No se esperaba 2 en este momento.
Muchas gracias de antemano