Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Eleкtro en 6 Noviembre 2011, 14:18 pm



Título: [ Batch] (Solucionado) Problema sobre argumentos %1
Publicado por: Eleкtro en 6 Noviembre 2011, 14:18 pm
Hola

Necesito crear una variable de esta manera:

Código
  1. Set 10=$219

El problema viene cuando intento usarla...

Código
  1. Echo %10%

Se que el problema es porque el código de arriba en realidad hace esto:

Código
  1. Echo %1

¿Como puedo evitar el maldito argumento en este caso?


Título: Re: [ Batch] Problema sobre argumentos %1
Publicado por: $Edu$ en 6 Noviembre 2011, 14:52 pm
Queres que muestre "$219" ? no uses el nombre de la variable como 10, usalo como p10 por ejemplo


Título: Re: [ Batch] Problema sobre argumentos %1
Publicado por: Eleкtro en 6 Noviembre 2011, 15:30 pm
Queres que muestre "$219" ? no uses el nombre de la variable como 10, usalo como p10 por ejemplo

Hola edu, gracias por contestar, pero esa solución no la puedo aplicar... Porque lo que intento es setear el argumento del CALL

Mira, esto es lo que intento hacer:

Código
  1. @echo off
  2.  
  3. Colous writesec "[7] Eliminando bla bla bla bla..."
  4. Colous writesec "[14] $195          $180 0%%"
  5.  
  6.  
  7. REM Llamo a mi procedimiento con el argumento "50"
  8. call :PROGRESSBAR 50
  9. pause>nul
  10.  
  11. :#######################################################
  12.  
  13. :PROGRESSBAR
  14. :~~~~~~~~~~~
  15.  
  16. Set 10=$219
  17. Set 20=$219$219
  18. Set 30=$219$219$219
  19. Set 40=$219$219$219$219
  20. Set 50=$219$219$219$219$219
  21. Set 60=$219$219$219$219$219$219
  22. Set 70=$219$219$219$219$219$219$219
  23. Set 80=$219$219$219$219$219$219$219$219
  24. Set 90=$219$219$219$219$219$219$219$219$219
  25. Set 100=$219$219$219$219$219$219$219$219$219
  26.  
  27. REM El dibujito...
  28. colous 14 0 04,03 %%1%
  29.  
  30. REM El porcentaje...
  31. colous 14 0 15,03 %1%%
  32.  
  33. Goto :EOF


El resultado es esto:

(http://img98.imageshack.us/img98/9/prtscrcapturej.jpg)


Y mi intención es que quede así:

(http://img35.imageshack.us/img35/2200/cwindowssystem32cmdexe.jpg)


Título: Re: [ Batch] Problema sobre argumentos %1
Publicado por: leogtz en 6 Noviembre 2011, 16:39 pm
A ver. en teoría no puedes, porque las variables con números están reservadas por las variables parametrizadas, %0 .. %9, así que no es recomendable y quizás no se pueda, además que en cualquier lenguaje, cualquiera, marca como regla que las variables jamás, jamás deben empezar por números, no es lógico, así que busca como llamar de otra manera tus variables.


Título: Re: [ Batch] Problema sobre argumentos %1
Publicado por: Eleкtro en 6 Noviembre 2011, 18:38 pm
Vale muchas gracias por la aclaración Leo

Al final lo he resuelto sin engorronear mucho el código xD


Código
  1. @echo off
  2.  
  3. Colous writesec "[7] Eliminando bla bla bla bla..."
  4. Colous writesec "[08] $195          $180 0%%"
  5.  
  6. call :PROGRESSBAR 50
  7. pause>nul
  8.  
  9. :#######################################################
  10.  
  11. :PROGRESSBAR
  12. :~~~~~~~~~~~
  13.  
  14. If %1==10 (Set PROGRESS=$219)
  15. If %1==20 (Set PROGRESS=$219$219)
  16. If %1==30 (Set PROGRESS=$219$219$219)
  17. If %1==40 (Set PROGRESS=$219$219$219$219)
  18. If %1==50 (Set PROGRESS=$219$219$219$219$219)
  19. If %1==60 (Set PROGRESS=$219$219$219$219$219$219)
  20. If %1==70 (Set PROGRESS=$219$219$219$219$219$219$219)
  21. If %1==80 (Set PROGRESS=$219$219$219$219$219$219$219$219)
  22. If %1==90 (Set PROGRESS=$219$219$219$219$219$219$219$219$219)
  23. If %1==100 (Set PROGRESS=$219$219$219$219$219$219$219$219$219)
  24.  
  25. colous 10 0 04,03 %PROGRESS%
  26. colous 10 0 15,03 %1%%
  27. Goto :EOF


Título: Re: [ Batch] (Solucionado) Problema sobre argumentos %1
Publicado por: leogtz en 6 Noviembre 2011, 19:40 pm
Perfecto.