Debes utilizar las etiquetas
GeShi para insertar código, lee las normas del subforo de Scripting.
La idea es hacer 2 vectores de diferentes elementos con funciones y pasarlos por referencia. Alguien me puede ayudar?
Eso es simplemente imposible de realizar en
Batch, es un lenguaje limitado. Ni puedes crear Arrays regulares, ni mucho menos Vectores, ni tampoco pasar variables por referencia, no existen esos conceptos, además, en
Batch no hay funciones como tales sino "puntos de detención" (o labels) que van al punto "B" y vuelven a "A" para seguir el procesamiento por lotes.
Lo único que puedes conseguir es escribir nombres de variables en forma de vectores, pero no usar un vector real.
No hay que confundir esto (un nombre de variable):
Con esto otro (un vector, lo cual es algo imaginario en
Batch):
Lo siento, pero la única y la mejor solución es que cambies a un lenguaje apto, un lenguaje capacitado para dicha tarea, que basicamente sería cualquier lenguaje actual excepto
Batch.
Te estoy dando mi más sincera y humilde opinión, lo que estás haciendo no te va a servir de nada útil, es absurdo implicarse más en ese asunto con una herramienta inutil cómo
Batch, es un consejo, pero de todas formas si quieres que lo que estás intentando hacer te funcione, te explicaré donde has fallado...
A la etiqueta
funcion_Guardar le pasas el argumento "lista" que debería ser el nombre de tu variable, pero realmente el nombre que le asignas es "vector" tal cual:
set vector[%pos%]=%valor%
Para solucionarlo, añádele el símbolo reservado de variable para asignarle el nombre "lista" al nombre de tu variable:
set %vector%[%pos%]=%valor%
En el bloque de la etiqueta
proc_Print te sucede lo mismo:
Modifícalo por:
echo vec[%%n]:!%vec%[%%n]!
Saludos