[ Batch] (Solucionado) Problema sobre argumentos %1

Iniciado por Eleкtro, 6 Noviembre 2011, 14:18 PM

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

Eleкtro

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?








$Edu$

Queres que muestre "$219" ? no uses el nombre de la variable como 10, usalo como p10 por ejemplo

Eleкtro

#2
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:




Y mi intención es que quede así:









leogtz

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.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Eleкtro

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








leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com