Используя командную строку Windows XP CMD, я могу дважды расширять переменную следующим образом:
set AAA=BBB
set BBB=CCC
for /F "usebackq tokens=*" %i in (`echo %%AAA%%`) do echo %i
будет эхо CCC
. То есть AAA
был расширен до строки BBB
, а затем переменная BBB
была расширена до CCC
.
Это не работает из пакета script (т.е. файла .cmd). Изменение %%AAA%%
на %%%AAA%%%
или %%%%AAA%%%%
тоже не работает.
Любая идея, как я могу достичь этого изнутри script, а именно, чтобы развернуть переменную AAA в строку CCC?
Позднее редактирование
Ответы, опубликованные для моего приведенного примера, работают, но нечеткий ответ не работает для реального случая. Вот расширенный пример (который не работает), который иллюстрирует то, что я на самом деле пытался сделать:
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!
)
Я хотел бы видеть
111
222
333
выход.