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, 9104 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
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu 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 Abfrage ERRORLEVEL springt aus der FOR Schleife (8)

Frage von Galindiesel zum Thema Batch & Shell ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...