Saludos,
- En tus últimos IF estás haciendo referencia a %2 y pues Batch hace una primera pasada para reemplazar variables, por ejemplo si yo llamo al
batch.bat 1 2 3 primero se revisará todo el "programa" actualizando/reemplazando las variables dadas
1 2 3 con
%1 %2 %3 respectivamente, luego hace otra pasada para ver si el código no tiene errores y pues tu IF queda malformado si no hay segundo parámetro:
IF LSS 2 esto provoca un error fatal.
- Para que no quede vació y no interfiera con la comparación de dos números puedes anteponer un +:
IF +%2 LSS 2, o puedes poner un número delante o detrás de ambos miembros:
IF %20 LSS 20 IF 5%2 LSS 52, en este último caso puedes tener problemas si antepones el 0 porque esto denotaría un número Octal.
- También podrías evitarte tanto paréntesis ya que estás utilizando saltos exclusivos:
echo No ha sido introducido un primer argumento.
echo Por favor, debe introducir dos argumentos para comenzar la ejecucion
del script.
)
echo No ha sido introducido un segundo argumento.
echo Por favor, debe introducir dos argumentos para comenzar la ejecucion
del script.
)
echo Ha sido introducido un tercer argumento.
echo Por favor, debe introducir solamente dos argumentos para comenzar la ejecucion
del script.
)
set "arg1="
& for /f "delims=0123456789"
%%i in ("
%1"
) do set arg1=
%%i echo El primer argumento a introducir debe ser un entero y ademas positivo.
)
set "arg2="
& for /f "delims=0123456789"
%%j in ("
%2"
) do set arg2=
%%j echo El segundo argumento a introducir debe ser un entero y ademas positivo.
)
echo Ha introducido como segundo argumento un numero menor de 2.
echo Debe introducir como segundo parametro un numero entre 2 y 16.
)
echo Ha introducido como segundo argumento un numero mayor de 16.
echo Debe introducir como segundo parametro un numero entre 2 y 16.
)
echo Los argumentos han sido correctamente introducidos.
:fin
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
echo + Gracias por utilizar nuestro script:
%0 +
echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
cls