Test Foro de elhacker.net SMF 2.1

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 (dos) [Seleccionar]
Set 10=$219

El problema viene cuando intento usarla...

Código (dos) [Seleccionar]
Echo %10%

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

Código (dos) [Seleccionar]
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
Cita de: $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

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 (dos) [Seleccionar]
@echo off

Colous writesec "[7] Eliminando bla bla bla bla..."
echo+
Colous writesec "[14] $195          $180 0%%"


REM Llamo a mi procedimiento con el argumento "50"
call :PROGRESSBAR 50
pause>nul

:#######################################################

:PROGRESSBAR
:~~~~~~~~~~~

Set 10=$219
Set 20=$219$219
Set 30=$219$219$219
Set 40=$219$219$219$219
Set 50=$219$219$219$219$219
Set 60=$219$219$219$219$219$219
Set 70=$219$219$219$219$219$219$219
Set 80=$219$219$219$219$219$219$219$219
Set 90=$219$219$219$219$219$219$219$219$219
Set 100=$219$219$219$219$219$219$219$219$219

REM El dibujito...
colous 14 0 04,03 %%1%

REM El porcentaje...
colous 14 0 15,03 %1%%

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 (dos) [Seleccionar]
@echo off

Colous writesec "[7] Eliminando bla bla bla bla..."
echo+
Colous writesec "[08] $195          $180 0%%"

call :PROGRESSBAR 50
pause>nul

:#######################################################

:PROGRESSBAR
:~~~~~~~~~~~

If %1==10 (Set PROGRESS=$219)
If %1==20 (Set PROGRESS=$219$219)
If %1==30 (Set PROGRESS=$219$219$219)
If %1==40 (Set PROGRESS=$219$219$219$219)
If %1==50 (Set PROGRESS=$219$219$219$219$219)
If %1==60 (Set PROGRESS=$219$219$219$219$219$219)
If %1==70 (Set PROGRESS=$219$219$219$219$219$219$219)
If %1==80 (Set PROGRESS=$219$219$219$219$219$219$219$219)
If %1==90 (Set PROGRESS=$219$219$219$219$219$219$219$219$219)
If %1==100 (Set PROGRESS=$219$219$219$219$219$219$219$219$219)

colous 10 0 04,03 %PROGRESS%
colous 10 0 15,03 %1%%
Goto :EOF
Título: Re: [ Batch] (Solucionado) Problema sobre argumentos %1
Publicado por: leogtz en 6 Noviembre 2011, 19:40 PM
Perfecto.