Wie Sie eine CMD-shell-variable zweimal (rekursiv)

Mithilfe der Windows XP-CMD-command line kann ich erweitern eine variable zweimal wie folgt:

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

echo CCC. I. e. AAA wurde erweitert, um die Zeichenfolge BBB, und dann die variable BBB wurde erweitert, um CCC.

Dies nicht funktioniert, von innen ein batch-Skript (also eine .cmd-Datei). Ändern der %%AAA%% entweder %%%AAA%%% oder %%%%AAA%%%% funktioniert auch nicht.

Irgendeine Idee, wie ich erreichen kann das in einem Skript nämlich erweitern Sie die variable AAA bis die Zeichenfolge CCC?

Spät Bearbeiten

Den Antworten für mein Beispiel reduziert jedoch die nicht-gewundene Antwort, die nicht arbeiten, für den Ernstfall. Hier ein erweitertes Beispiel (was nicht funktioniert), das illustriert, was ich eigentlich machen willst:

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!

)

Ich würde gerne sehen,

111
222
333

Ausgabe.

dinged, da Sie sich noch in eine batch-Datei und nicht mit powershell. 😉
Kann nicht mit der PowerShell, noch nicht zumindest.
Ist nicht Ihre Anweisung Die Antworten für mein Beispiel reduziert jedoch die nicht-gewundene Antwort, die nicht arbeiten, für den Ernstfall, die im Widerspruch mit Ihrem Kommentar zu akf's post Danke, diese beiden tun Sie tatsächlich funktioniert.?
Nur, wenn Sie nicht berücksichtigt wird der Zeitpunkt, zu dem die Kommentare und Aussagen wurden gemacht.
Ok. Wenn Strom Antworten tun, Ihre Frage zu beantworten wäre es schön, zu reflektieren, diese Tatsache durch die Aktualisierung Ihrer Bemerkung in die Frage. Aktuellen Zustand ist verwirrend.

InformationsquelleAutor jon-hanson | 2009-07-29

Schreibe einen Kommentar