CMD je peux développer deux fois une variable comme suit:Comment développer une ligne de commande Utiliser Windows XP variable shell CMD deux fois (récursive)
set AAA=BBB
set BBB=CCC
for /F "usebackq tokens=*" %i in (`echo %%AAA%%`) do echo %i
fera écho CCC
. C'est à dire. AAA
a été étendu à la chaîne BBB
, puis la variable BBB
a été étendue à CCC
.
Cela ne fonctionne pas à l'intérieur d'un script de traitement par lots (c'est-à-dire un fichier .cmd). Changer le %%AAA%%
en %%%AAA%%%
ou en %%%%AAA%%%%
ne fonctionne pas non plus.
Une idée de comment je peux réaliser ceci à partir d'un script, à savoir prendre la variable AAA à la chaîne CCC?
Modifier la fin
Les réponses affichées travail pour mon exemple réduit cependant la réponse non tortueuse ne fonctionne pas pour le cas réel. Voici un exemple étendu (qui ne fonctionne pas), qui illustre ce que je en train d'essayer de le 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
sortie
.
dinged parce que vous sont toujours dans un fichier batch et n'utilise pas PowerShell. ;) – Cheeso
Impossible d'utiliser PowerShell, pas encore au moins. –
Est-ce pas votre déclaration * Les réponses ont affiché du travail pour mon exemple réduit mais la réponse non-tortueuse ne fonctionne pas pour le cas réel * en contradiction avec Votre commentaire à * akf * * Merci, les deux travail.*? –