Los siguientes anidado bucle for me vuelve loca (en Windows 7):lotes bucles for anidados
@echo off
SetLocal EnableDelayedExpansion
set TESTDIRS=fast mid slow
set TD=src\test\resources\testsuite
for %%d in (%TESTDIRS%) do (
set CTD=%TD%\%%d
echo CTD: !CTD!
REM Echos the expected path
echo CTD: %CTD%
REM Echos nothing -- understandable
for /R !CTD! %%f in (*.fs) do (echo %%f)
REM Echos nothing -- why?
for /R src\test\resources\testsuite\fast %%f in (*.fs) do (echo %%f)
REM Echos expected files
)
He intentado varias soluciones que implican la desactivación DelayedExpansion, call-declaraciones y todo eso, pero nunca consiguió el bucle interno trabajando. Sé que podría reemplazar el ciclo interno por una llamada de subrutina, pero debe haber una forma de hacerlo funcionar con bucles anidados.
+1 para una solución buena y simple – jeb
¡De hecho, es una buena solución! Pero probablemente no siempre sea aplicable ... –
Aceptaré esta solución ya que resuelve la pregunta en el contexto de mi ejemplo. Y es realmente inteligente :-) –