Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: amok en 12 Noviembre 2016, 20:39 pm



Título: No se esperaba 0 en este momento
Publicado por: amok en 12 Noviembre 2016, 20:39 pm
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
  1. @echo off
  2. cls
  3. rem script que calcula el factorial de un numero
  4.  
  5.  
  6. :volver
  7. rem x es el parametro 1
  8.  
  9. set x=%1
  10. rem si el numero es menor de 0 dara error
  11. rem si el numero es igual 0 valdrá 1
  12. rem si no introduzco un número dara error
  13. rem iniciamos conta en 1 e ira acumulando
  14.  
  15. set /a conta=1
  16.  
  17.  
  18. if "%1" =="" (
  19. echo No ha introducido argumentos
  20. goto fin
  21. ) else (
  22. if %x% lss 0 (
  23. echo No se permiten numeros negativos
  24. goto fin)
  25. if "%x%" geq "a" (
  26. echo No se permiten letras
  27. goto fin)
  28. )
  29.  
  30.  
  31.  
  32.  
  33.  
  34. if "%x%"=="0" (
  35. set /a conta=1
  36. goto solucion
  37. ) else (
  38. if "%x%"=="1" (
  39. set /a conta=1
  40. goto solucion)
  41. )
  42.  
  43. :inicio
  44.  
  45. rem aqui se iran almacenando los resultados
  46. set /a conta=conta*x
  47.  
  48. rem aqui la variable x va decreciendo
  49. set /a x=x-1
  50.  
  51.  
  52.  
  53. if "%x%"=="1" (
  54. goto solucion
  55. ) else (
  56. goto inicio
  57. )
  58. :solucion
  59. @echo el factorial es %conta%
  60.  
  61. :fin
  62.