No se esperaba 0 en este momento

Iniciado por amok, 12 Noviembre 2016, 20:39 PM

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

amok

Hola muy buenas!

Pues esty empezando en esto de los .bat y tengo un error básico en uno para calcular el factorial de un número que me devuelve "No se esperaba 0 en este momento" cuando introduzco un parámetro y yo lo que pretendo es que se muestre el mesaje "No ha introducido argumentos"

alguien me ilumina?

Código (dos) [Seleccionar]

@echo off
cls
rem script que calcula el factorial de un numero


:volver
rem x es el parametro 1

set x=%1
rem si el numero es menor de 0 dara error
rem si el numero es igual 0 valdrá 1
rem si no introduzco un número dara error
rem iniciamos conta en 1 e ira acumulando

set /a conta=1


if "%1" =="" (
echo No ha introducido argumentos
goto fin
) else (
if %x% lss 0 (
echo No se permiten numeros negativos
goto fin)
if "%x%" geq "a" (
echo No se permiten letras
goto fin)
)





if "%x%"=="0" (
set /a conta=1
goto solucion
) else (
if "%x%"=="1" (
set /a conta=1
goto solucion)
)

:inicio

rem aqui se iran almacenando los resultados
set /a conta=conta*x

rem aqui la variable x va decreciendo
set /a x=x-1



if "%x%"=="1" (
goto solucion
) else (
goto inicio
)
:solucion
@echo el factorial es %conta%

:fin
pause