Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch: Elemente einer for-Schleife in Variable speichern

Frage Entwicklung Batch & Shell

Mitglied: benp

benp (Level 1) - Jetzt verbinden

03.08.2006, aktualisiert 18:32 Uhr, 9095 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:
01.
Setlocal EnableDelayedExpansion 
02.
... 
03.
SET path_libs=a 
04.
FOR %%f in (b c d) DO SET path_libs=!path_libs!;%%f 
05.
Endlocal & Set path_libs=%path_libs%
b) Über den Aufruf eines geCALLeten Blocks außerhalb der FOR..IN..DO..-Zeile.
01.
... 
02.
SET path_libs=a 
03.
FOR %%f in (b c d) DO call :sub %%f 
04.
goto :eof 
05.
 
06.
:call sub  
07.
SET path_libs=%path_libs%;%1 
08.
goto :eof
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 ..
Ähnliche Inhalte
Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (21)

Frage von Mipronimo zum Thema Windows 7 ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (20)

Frage von oel-auge zum Thema Router & Routing ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (18)

Frage von Pandreas zum Thema Windows Userverwaltung ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...