limitación del número de parámetros en ficheros bat

17/04/2005 - 10:33 por slag | Informe spam
He visto que solo se puede referenciar en un fichero batch (bat o cmd) hasta
el parámetro 9, de la forma %1, %2%9

¿no se admiten más parámetros? ¿está limitado a ese máximo, que aunque sea
alto, está limitado?

gracias.


Preguntas similare

Leer las respuestas

#1 JM Tella Llop [MVP Windows]
17/04/2005 - 10:45 | Informe spam
El numero de parametros en un bat es ilimitado. Ahora bien, a pesar de ser
ilimitado solo puede referenciarse los 9 primeros parametros de la forma %1,
%2, %3,%8, %9

Pero tambien tenemos el comando "shift" el cual pasa el parametro 2 al 1, el
3 al 2, etc... es decir, los va haciendo descender. Por tanto al descenter,
el parametro 10 (que no es visible) pasara al 9 (qye ya si que lo es). Es
decir, por cada comando shift tenemos accesibe un nuebo parametro (y se
pierde el anterior).

Debido a que los ficheros bat tambien admiten variables del tipo "array"
(tablas), podemos crearnos una variable de ese tipo y almacenar en ella
todos los parámetros usando una simple subrutina del tipo que te dejo en
este ejemplo:

set /a i=0
:rparm
set /a i+=1
set param_%i%_=%1
shift
if {%1} NEQ {} goto :rparm
...continuacion de tu bat


Posteriormente puedes ya referneciar por: param_1_ param_2_ param_3_ ... etc
todos los parametros y en la variable de entorno "i" tienes el numero de
parametros pasados.



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"slag" wrote in message
news:
He visto que solo se puede referenciar en un fichero batch (bat o cmd)
hasta el parámetro 9, de la forma %1, %2%9

¿no se admiten más parámetros? ¿está limitado a ese máximo, que aunque sea
alto, está limitado?

gracias.





Respuesta Responder a este mensaje
#2 slag
17/04/2005 - 12:43 | Informe spam
muchas gracias

te debo dos :-)))


"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:%
El numero de parametros en un bat es ilimitado. Ahora bien, a pesar de ser
ilimitado solo puede referenciarse los 9 primeros parametros de la forma
%1, %2, %3,%8, %9

Pero tambien tenemos el comando "shift" el cual pasa el parametro 2 al 1,
el 3 al 2, etc... es decir, los va haciendo descender. Por tanto al
descenter, el parametro 10 (que no es visible) pasara al 9 (qye ya si que
lo es). Es decir, por cada comando shift tenemos accesibe un nuebo
parametro (y se pierde el anterior).

Debido a que los ficheros bat tambien admiten variables del tipo "array"
(tablas), podemos crearnos una variable de ese tipo y almacenar en ella
todos los parámetros usando una simple subrutina del tipo que te dejo en
este ejemplo:

set /a i=0
:rparm
set /a i+=1
set param_%i%_=%1
shift
if {%1} NEQ {} goto :rparm
...continuacion de tu bat


Posteriormente puedes ya referneciar por: param_1_ param_2_ param_3_ ...
etc todos los parametros y en la variable de entorno "i" tienes el numero
de parametros pasados.



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"slag" wrote in message
news:
He visto que solo se puede referenciar en un fichero batch (bat o cmd)
hasta el parámetro 9, de la forma %1, %2%9

¿no se admiten más parámetros? ¿está limitado a ese máximo, que aunque
sea alto, está limitado?

gracias.









Respuesta Responder a este mensaje
#3 slag
17/04/2005 - 12:50 | Informe spam
Y abusando un poco más de tus conocimientos: a veces algunas variables de
entorno en mis scripts batch se quedan con blancos (espacios) al final. ¿hay
posibilidad de eliminarlos sin necesidad de ir analizando uno por uno y
cortando con substring?

gracias anticipadas.-


"slag" escribió en el mensaje
news:
muchas gracias

te debo dos :-)))


"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:%
El numero de parametros en un bat es ilimitado. Ahora bien, a pesar de
ser ilimitado solo puede referenciarse los 9 primeros parametros de la
forma %1, %2, %3,%8, %9

Pero tambien tenemos el comando "shift" el cual pasa el parametro 2 al 1,
el 3 al 2, etc... es decir, los va haciendo descender. Por tanto al
descenter, el parametro 10 (que no es visible) pasara al 9 (qye ya si que
lo es). Es decir, por cada comando shift tenemos accesibe un nuebo
parametro (y se pierde el anterior).

Debido a que los ficheros bat tambien admiten variables del tipo "array"
(tablas), podemos crearnos una variable de ese tipo y almacenar en ella
todos los parámetros usando una simple subrutina del tipo que te dejo en
este ejemplo:

set /a i=0
:rparm
set /a i+=1
set param_%i%_=%1
shift
if {%1} NEQ {} goto :rparm
...continuacion de tu bat


Posteriormente puedes ya referneciar por: param_1_ param_2_ param_3_ ...
etc todos los parametros y en la variable de entorno "i" tienes el numero
de parametros pasados.



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"slag" wrote in message
news:
He visto que solo se puede referenciar en un fichero batch (bat o cmd)
hasta el parámetro 9, de la forma %1, %2%9

¿no se admiten más parámetros? ¿está limitado a ese máximo, que aunque
sea alto, está limitado?

gracias.













Respuesta Responder a este mensaje
#4 JM Tella Llop [MVP Windows]
17/04/2005 - 12:53 | Informe spam
for /f %%a in ("%variable%") do set variable=%%a


Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"slag" wrote in message
news:
Y abusando un poco más de tus conocimientos: a veces algunas variables de
entorno en mis scripts batch se quedan con blancos (espacios) al final.
¿hay posibilidad de eliminarlos sin necesidad de ir analizando uno por uno
y cortando con substring?

gracias anticipadas.-


"slag" escribió en el mensaje
news:
muchas gracias

te debo dos :-)))


"JM Tella Llop [MVP Windows]" escribió en el
mensaje news:%
El numero de parametros en un bat es ilimitado. Ahora bien, a pesar de
ser ilimitado solo puede referenciarse los 9 primeros parametros de la
forma %1, %2, %3,%8, %9

Pero tambien tenemos el comando "shift" el cual pasa el parametro 2 al
1, el 3 al 2, etc... es decir, los va haciendo descender. Por tanto al
descenter, el parametro 10 (que no es visible) pasara al 9 (qye ya si
que lo es). Es decir, por cada comando shift tenemos accesibe un nuebo
parametro (y se pierde el anterior).

Debido a que los ficheros bat tambien admiten variables del tipo "array"
(tablas), podemos crearnos una variable de ese tipo y almacenar en ella
todos los parámetros usando una simple subrutina del tipo que te dejo en
este ejemplo:

set /a i=0
:rparm
set /a i+=1
set param_%i%_=%1
shift
if {%1} NEQ {} goto :rparm
...continuacion de tu bat


Posteriormente puedes ya referneciar por: param_1_ param_2_ param_3_ ...
etc todos los parametros y en la variable de entorno "i" tienes el
numero de parametros pasados.



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"slag" wrote in message
news:
He visto que solo se puede referenciar en un fichero batch (bat o cmd)
hasta el parámetro 9, de la forma %1, %2%9

¿no se admiten más parámetros? ¿está limitado a ese máximo, que aunque
sea alto, está limitado?

gracias.

















Respuesta Responder a este mensaje
#5 slag
17/04/2005 - 13:05 | Informe spam
ya van 3 :-)))


"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:ecw%
for /f %%a in ("%variable%") do set variable=%%a


Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"slag" wrote in message
news:
Y abusando un poco más de tus conocimientos: a veces algunas variables de
entorno en mis scripts batch se quedan con blancos (espacios) al final.
¿hay posibilidad de eliminarlos sin necesidad de ir analizando uno por uno
y cortando con substring?

gracias anticipadas.-


"slag" escribió en el mensaje
news:
muchas gracias

te debo dos :-)))


"JM Tella Llop [MVP Windows]" escribió en el
mensaje news:%
El numero de parametros en un bat es ilimitado. Ahora bien, a pesar de
ser ilimitado solo puede referenciarse los 9 primeros parametros de la
forma %1, %2, %3,%8, %9

Pero tambien tenemos el comando "shift" el cual pasa el parametro 2 al
1, el 3 al 2, etc... es decir, los va haciendo descender. Por tanto al
descenter, el parametro 10 (que no es visible) pasara al 9 (qye ya si
que lo es). Es decir, por cada comando shift tenemos accesibe un nuebo
parametro (y se pierde el anterior).

Debido a que los ficheros bat tambien admiten variables del tipo
"array" (tablas), podemos crearnos una variable de ese tipo y almacenar
en ella todos los parámetros usando una simple subrutina del tipo que
te dejo en este ejemplo:

set /a i=0
:rparm
set /a i+=1
set param_%i%_=%1
shift
if {%1} NEQ {} goto :rparm
...continuacion de tu bat


Posteriormente puedes ya referneciar por: param_1_ param_2_ param_3_
... etc todos los parametros y en la variable de entorno "i" tienes el
numero de parametros pasados.



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"slag" wrote in message
news:
He visto que solo se puede referenciar en un fichero batch (bat o cmd)
hasta el parámetro 9, de la forma %1, %2%9

¿no se admiten más parámetros? ¿está limitado a ese máximo, que aunque
sea alto, está limitado?

gracias.





















email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida