Hola de nuevo, Leo!
Verás, después de haber expuesto mi duda seguí investigando. He de decir que el ejemplo expuesto no es real. Con esto quiero decir que los datos obtenidos no son nombres de persona, sinó nombres de equipos (el ejemplo lo puse para tratar de hacerme entender mejor, pero pienso que fue un error).
El equipo con la base de datos al que se hace la consulta es un servidor, y los resultados obtenidos son los equipos que a él se conectan.
Una vez tenemos los datos, necesito hacer operaciones con ellos, como por ejemplo un ping, para obtener su IP y revisar que todos tengan conectividad y la misma máscara de subred... por ejemplo. Todo esto quisiera que se hiciese de forma automatizada, por ese motivo la importancia de tener una forma fácil de acceder a las variables.
Resumiendo: Mi script se conecta mediante psexec al servidor, hace la consulta sql y guarda los resultados a un fichero.
Ahora gracias a tu ayuda, puedo tener un contador que me indica cuantos resultados hay.
Sin embargo, sigo sin ver una forma de poder realizar operaciones con los equipos clientes, dado que su número es variable según el servidor al que se consulte.
Si siempre tuviese 2 clientes, en el script llamaría siempre a dos variables, con lo que se acaba el problema. Pero en mi caso, el script tiene que llamar a x variables:
@echo off
setlocal enabledelayedexpansion
set /a contador=0
rem "familia.txt" es el archivo conteniendo el resultado de la consulta:
rem szfamilyname
rem --------------------
rem HMAR
rem HTERESA
rem HLUZ
rem (3 rows affected)
for /f "tokens=*" %%_ in ('findstr /r ^H.*$ familia.txt') do (
set query[!contador!]=%%_
set /a contador+=1
)
echo No. de valores: !contador!
rem Los valores son guardados en el array "query".
rem Para mostrar los valores del array:
rem Primera posicion:
echo !query[0]!
rem Segunda posicion:
echo !query[1]!
rem Tercera posicion:
echo !query[2]!
rem Y así consecutivamente...
rem Solo estoy mostrando hasta el 3, claro que puede haber muchos mas.
pause
Aqui está mi problema. Si tuviese siempre tres resultados, pondría el código tal cual has expuesto, pero como los resultados pueden ser desde 1 hasta 12, no se muy bien como planteármelo para poder crear una orden de ping (entre otras) por cada uno de ellos.
Ante todo quiero agradecerte toda la ayuda que me estás brindando.
Espero puedas entender lo que intento explicarte, pues soy consciente de que esto no se me da demasiado bien y quizas estoy pasando cosas por alto.
Me mantengo a la espera.
Un abrazo!!
P.D Por cierto, respondiendo a tu pregunta. Este script lo utilizo para mi trabajo, y utilizo cmd pues los equipos a los que nos tenemos que conectar utilizan Windows XP o 2003, tienen unas directivas de seguridad elevadas y no tenemos permiso para utilizar utilidades de terceros.