Por qué no retrasa el trabajo de expansión como parámetro en un comando for [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Lote anidado para bucles 4 respuestas

Quiero ejecutar algunos bucles for para cada ruta proporcionada en una variable. Losecho !temp! funciona bien, sin embargo, los comandos de abajo no funcionarán:

@echo off
setlocal enabledelayedexpansion

set paths=(C:\test C:\test2)

for %%p in %paths% do (
    set temp=%%p
    echo !temp!
    for /r !temp! %%f in (*.h) do (echo %%f)
    for /r !temp! %%g in (*.h *.cpp) do (echo %%g)
)

Respuestas a la pregunta(1)

Su respuesta a la pregunta