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:
Mostrar la cita
#2 slag
17/04/2005 - 12:43 | Informe spam
muchas gracias

te debo dos :-)))


"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:%
Mostrar la cita
#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:
Mostrar la cita
#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:
Mostrar la cita
#5 slag
17/04/2005 - 13:05 | Informe spam
ya van 3 :-)))


"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:ecw%
Mostrar la cita
Ads by Google
Search Busqueda sugerida