Comment développer deux fois une variable de shell CMD (récursivement)

À l'aide de la Windows XP CMD ligne de commande je peux développer une variable à deux reprises comme suit:

set AAA=BBB
set BBB=CCC
for /F "usebackq tokens=*" %i in (`echo %%AAA%%`) do echo %i

se fera l'écho de CCC. I. e. AAA a été étendue à toute la chaîne de BBBpuis la variable BBB a été élargi pour CCC.

Cela ne fonctionne pas à partir à l'intérieur d'un script batch (c'est à dire une .fichier cmd). La modification de la %%AAA%% soit %%%AAA%%% ou %%%%AAA%%%% ne fonctionne pas non plus.

Une idée de comment je peux obtenir ce à partir d'un script, à savoir prendre élargir la variable AAA pour la chaîne de la CCC?

La Fin De Modifier

Les réponses postées travailler pour mon exemple réduit cependant la non-tortueux réponse ne fonctionne pas pour le cas réel. Voici un exemple (qui ne fonctionne pas), qui illustre ce que j'étais en train d'essayer de faire:

setlocal enabledelayedexpansion

set LIST=BBB CCC DDD
set BBB=111
set CCC=222
set DDD=333

for %%i in (%LIST%) do (

    for /F  %%a in ('echo %%%i%') do  echo !%%a!

)

Je voudrais voir

111
222
333

de sortie.

source d'informationauteur jon-hanson