Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BlacKGilgamesH en 6 Abril 2010, 19:41 pm



Título: Ayuda con Batch. [Solucionado]
Publicado por: BlacKGilgamesH en 6 Abril 2010, 19:41 pm
Hola, soy nuevo aqui en el foro, pero llevo programando en batch un buen tiempo, pero tengo un problema, en el siguiente codigo, pide al usuario un numero, por ejemplo 5, y tendria que mostrar algo asi.

+
++
+++
++++
+++++

osea, que haga X cantidad de filas con cada vez un "+"  más, y lo que hace es:

+
+
+
+
+

Pero no se que este mal en este codigo.

Código
  1. @echo off
  2. title Piramide Astericos
  3. color f0
  4. cls
  5. echo.Numero de filas de la piramide?
  6. set/p aster=
  7. set num=1
  8. cls
  9. :ini2
  10. call:aster1 %num%
  11. if %num%==%aster% (
  12. goto fin1
  13. ) else (
  14. set/a num=%num%+1
  15. goto ini2
  16. )
  17. :fin1
  18. pause>nul
  19. :aster1

De antemano gracias.

PD:En el codigo los "+" son "*"


Título: Re: Ayuda con Batch.
Publicado por: leogtz en 6 Abril 2010, 20:19 pm
Lo que debes de hacer:

En una variable ir concatenando los asteriscos:

Código
  1. @echo off
  2. :code
  3. set /p "lineas=Ingresa un numero : "
  4. if not defined lineas (goto:code)
  5. set "string=*"
  6. :loop
  7. echo %string%
  8. set "string=%string%*"
  9. set /a "cont+=1"
  10. if %cont% neq %lineas% (goto:loop)
  11. set /p "="
  12. exit /b 0

No tiene caso que te compliques tanto con tantos gotos y etiquetas.

Incluso podrías con FOR:
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :code
  4. set /p "lineas=Ingresa un numero : "
  5. if not defined lineas (goto:code)
  6. set "string=*"
  7. for /l %%_ in (1, 1, %lineas%) do (
  8. echo !string!
  9. set "string=!string!*"
  10. )
  11. set /p "="
  12. exit /b 0
  13.  

Aquí otra menera de como se haría por ejemplo en C:

Código
  1. @echo off
  2. rem Piramide de 5 lineas.
  3. for /l %%i in (1, 1, 5) do (
  4. for /l %%j in (1, 1, %%i) do (
  5. < nul set /p "=*"
  6. )
  7. )
  8. pause>nul
  9. exit /b 0

Cualquier duda aquí estamos.


Título: Re: Ayuda con Batch.
Publicado por: BlacKGilgamesH en 6 Abril 2010, 20:25 pm
Gracias, ya esta solucionado, me sirvio.