Pasarle la variable %%A de un FOR a un segundo FOR

Iniciado por nhaalclkiemr, 23 Mayo 2007, 19:10 PM

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

nhaalclkiemr

Como puedo solucionar esto?

for /D %%A IN (C:\*) DO for /R "%%A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp

Lo que quiero hacer es cojer de C:\ la lista de directorios con un FOR y pasarselo a otro FOR que realizará una accion en sus subcarpetas.
Ya sé k como con FOR /D voy a conseguir las subcarpetaas y despues voy a analizar estas se podría hacer de esta manera:

for /R "C:\" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp

Pero esto no me sirve por unas razones, concretamente pork hay carpetas de C:\ que quiero excluír...es decir, el primer for guarda en %%A las subcarpetas de C:\ y despues le pasa al segundo FOR las subcarpetas que por ejemplo cumplan un cierto atributo...pero esto no importa...la cuestion es komo puedo pasarle la variable %%A a el segundo FOR, puesto que en el code que puse al principio %%A no se expande...Yo prové varias maneras pero nada:

for /D %%A IN (C:\*) DO (for /R "%%A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp)

for /D %%A IN (C:\*) DO (
for /R "%%A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


for /D %%A IN (C:\*) DO (
for /R "!!A" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


for /D %%A IN (C:\*) DO (
set tm=%%A
for /R "%tm%" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


for /D %%A IN (C:\*) DO (
set tm=%%A
for /R "!tm!" %%Q IN (*) DO echo "%%Q" | find "archivo" >> tmp.tmp
)


Pues ninguno de estos me funciona, por el tema de las extensiones de comando para usar !variable! ya lo habia comentado aki y no me funcionaba eso de que dentro de un parentesis si pones !variable! y tienes las extensiones de comando activadas...eso lo digo por los dos ultimos ejemplos k puse k no funcionan sobre todo...



¿¿Posibles soluciones?? :huh: :huh:
StasFodidoCrypter 1.0 - 100% (old)
StasFodidoCrypter 2.0 - 85% (deserted)
Fire AV/FW-Killer - 97% (deserted)
R-WlanXDecrypter 1.0- 100%

sirdarckcat

usa funciones :P
cuando mandas llamar:

for /D %%A IN (C:\*) DO (
     funcion %%A
)
goto:EOF
:funcion
for /R "%1" %%Q IN (*) DO  (
     echo "%%Q" | find "archivo" >> tmp.tmp
)

es una forma no documentada de expandir variables.

Saludos!!