mc-doubleyou
Goto Top

Variable soll Variable setzen

Hallo zusammen,

ich versuche eben bestimmt durch eine Variable eine andere zu definieren, ich hatte gehofft das ginge so - aber leider nicht

set Autos=fahren
set Menschen=gehen

set var1=Autos

echo %var1% %%var1%%

leider bekomme ich dann

Autos %Autos%

Hoffe es kann jemand helfen und schönes Wochenende!

LG mcdy

Content-ID: 225409

Url: https://administrator.de/contentid/225409

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

colinardo
Lösung colinardo 27.12.2013 aktualisiert um 19:40:49 Uhr
Goto Top
Hallo mcdy,
@echo off & setlocal enabledelayedexpansion
set Autos=fahren
set Menschen=gehen
set var1=Autos
echo %var1% !%var1%!
Exkurs Verzögerte Variablenerweiterung

Grüße Uwe
mc-doubleyou
mc-doubleyou 27.12.2013 um 19:30:23 Uhr
Goto Top
Hallo colinardo,

also ich bekomme nun:

Autos !Autos!

Klappt es bei dir?

LG mcdy
colinardo
Lösung colinardo 27.12.2013 aktualisiert um 19:40:53 Uhr
Goto Top
yip, dann hast du
setlocal enabledelayedexpansion
am Anfang des Scripts vergessen.
mc-doubleyou
mc-doubleyou 27.12.2013 um 19:40:32 Uhr
Goto Top
Hallo colinardo,

stimmt, weiß zwar immer noch nicht was das bewirkt, aber es ist scheinbar nützlich ^^

Danke!
colinardo
colinardo 27.12.2013 aktualisiert um 19:51:36 Uhr
Goto Top
Zitat von @mc-doubleyou:
stimmt, weiß zwar immer noch nicht was das bewirkt, aber es ist scheinbar nützlich ^^
siehe dir den Link an den ich im ersten Kommentar geschrieben habe.
Durch das Verwenden der verzögerten Variablenerweiterung wird dem Befehlsinterpreter mitgeteilt das er alles was zwischen zwei Ausrufezeichen steht erst zur Ausführungszeit des Scripts expandiert wird, während alles was zwischen zwei Prozentzeichen steht bereits beim Parsen des Scripts expandiert wird.
bastla
bastla 27.12.2013 aktualisiert um 21:52:14 Uhr
Goto Top
... und noch als Ergänzung: Mit der folgenden Zeile 6
call echo %var1% %%%var1%%%
ginge es auch ohne "delayedExpansion" ...

Grüße
bastla