Batch: Elemente einer for-Schleife in Variable speichern

Mitglied: benp

benp (Level 1) - Jetzt verbinden

03.08.2006, aktualisiert 18:32 Uhr, 9268 Aufrufe, 2 Kommentare

Hallo,

ich versuche in einer for-Schleife einen String zusammenzustellen. Als einfaches Beispiel diese beiden Zeilen:

SET path_libs=a
FOR %%f in (b c d) DO SET path_libs=%path_libs%;%%f

Ich erwarte eigentlich, dass danach path_libs den Wert "a;b;c;d" hat. Tatsächlich ist es aber "a;d". Versteht ihr das?
Zum Testen habe ich folgendes probiert:

FOR %%f in (b c d) DO echo %%f

oder auch

SET path_libs=a
SET path_libs=%path_libs%;b
SET path_libs=%path_libs%;c
SET path_libs=%path_libs%;d

Das geht wie erwartet. Nur die Kombination (s.o.) geht bei mir nicht.

Danke für jeden Tipp!
Benedikt
Mitglied: Biber
03.08.2006 um 17:23 Uhr
Moin benp,

willkommen im Forum.
Such mal bitte über die Forumssuche oder in der CMD-Hilfe mit Set /? oder CALL /? nach "DelayedExpansion".

Kurzgefasst ist es so, dass die eine "FOR...IN..DO"-Anweisung genau einmal vom CMD-Interpreter interpretiert wird und alle darin enthaltenen Variablen (außer Zählvariablen) auch genau einmal expandiert/aufgelöst werden.

Zwei Strategien, wenn es anders sein soll:
a) Über Deklaration einer verzögerten Variablenauflösung:
b) Über den Aufruf eines geCALLeten Blocks außerhalb der FOR..IN..DO..-Zeile.
Hope That Helps
Biber
Bitte warten ..
Mitglied: benp
03.08.2006 um 18:32 Uhr
Hallo Biber,

wow, vielen Dank für deine Erklärung und Lösungen!
Sie funktionieren super! Allein wär ich da nie drauf gekommen.

Viele Grüße, Benedikt
Bitte warten ..
Heiß diskutierte Inhalte
Windows 10
PDF automatisch auf zwei Drucker aufteilen
hannes.pVor 1 TagFrageWindows 109 Kommentare

Hallo zusammen, ich suche verzweifelt nach einer Möglichkeit, ein von einer Web-Anwendung generiertes PDF automatisch auf zwei Drucker drucken zu lassen. Das PDF Dokument ...

Microsoft
Erwerb von M365 Lizenzen, Partner Autorisierung für Azure AD - Globaler Administrator wirklich nötig?
NidavellirVor 1 TagFrageMicrosoft4 Kommentare

Hi zusammen, bitte entschuldigt den etwas sperrigen Titel, aber ein knapperer wollte mir nicht einfallen. :D Wir wollen bei einem Systemhaus M365 Lizenzen (Business ...

Windows 10
Sperrbildschirm nach 5 min
ZeppelinVor 1 TagFrageWindows 1012 Kommentare

Hallo zusammen, ich wende mich mit meinem anliegen an euch weil ich mit meinen Möglichkeiten am Ende bin. Wenn innerhalb von 5 min. keine ...

Speicherkarten
Welchen USB Stick für Bootstick?
gelöst dlnkrgVor 1 TagFrageSpeicherkarten6 Kommentare

Hallo, Ich bin auf der Suche nach USB - Sticks, auf denen ich Linux Ubuntu installieren kann und praktisch als Festplatte für das Betriebssystem ...

Off Topic
BKA und der Bundestrojaner
brammerVor 1 TagInformationOff Topic3 Kommentare

Hallo, habe kurz überlegt ob das unter Off Topic allgemein oder Off Topic LOL gehört brammer

Windows Netzwerk
Sporadisch kein Netz auf mehreren Win10-Maschinen
SolarflareVor 19 StundenFrageWindows Netzwerk6 Kommentare

Hallo, ich habe seit Monaten einen eigenartigen Effekt in unserem Windows-Netz. Windows-Domäne mit ca. 100 Maschinen, alle Clients aktuelles Windows 10. Die Maschinen hängen ...

Sicherheit
Emails als Nur Text
Jessica98Vor 1 TagFrageSicherheit4 Kommentare

Hallo zusammen, macht es Sinn E-Mails als nur Text einzustellen, um sich vor schädlichen HTML-Code zu schützen? Meines Erachtens wird ein Benutzer diese Email ...

Windows 7
Userpfad Problem nach Aenderung des Computernamens
BernerVor 1 TagFrageWindows 78 Kommentare

In einem Netzwerk von 9 PCs sind 9 Ersatz-PCs eingebunden, bei denen im Bedarfsfall vor dem Einsatz nur der Computername und die IP-Adresse angepasst ...