Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Foreach in Batch umsetzen

Frage Entwicklung Batch & Shell

Mitglied: 84544

84544 (Level 1)

15.01.2010, aktualisiert 21:04 Uhr, 8646 Aufrufe, 6 Kommentare

Hallo,

gibt es eine Möglichkeit mit Batch eine foreach-Schleife umzusetzen?

Die foreach soll dann aus einer Datei xyz.txt Werte auslesen

Inhalt:
46723456,835462,2567889,22346787,1678895, usw.

Die Anzahl der Werte ist UNbestimmt.

Möglich wäre natürlich.

:schleife
set tok=1
for /f "tokens=%tok% delims=," %%g in ('xyz.txt') do set var=%%g
...........das was mit der Variable passieren soll.......
z.B.
echo %var% >> abc.txt
if %var%=="" goto ende
set /a tok=%tok%+1
goto schleife

:ende
exit

Aber mir kommt das zu umständlich vor.

Das müsste man doch irgendwie einfacher machen können.

Ich bedanke mich schonmal im Varraus für eure Hilfe^^
Mitglied: 60730
15.01.2010 um 21:22 Uhr
Zitat von 84544:
Hallo,

gibt es eine Möglichkeit mit Batch eine foreach-Schleife umzusetzen?
Die Anzahl der Werte ist UNbestimmt.
Ich bedanke mich schonmal im Varraus für eure Hilfe^^

gib doch mal for /? im Befehlsinterpreter deiner Wahl ein.
weder den Zähler, noch die Sprungmarke :schleife braucht man.

Und das wäre doch auch witzlos, wenn man zuerst wissen müßte, wieviele Treffer in einer Datei wären, um die mit einer For Schleife auszuwerten.

Gruß
Bitte warten ..
Mitglied: 84544
15.01.2010 um 21:29 Uhr
das hätte ich ja theoretisch durch if %var%=="" goto ende gelöst

PS: gib mir mal ein tipp wo ich in der for hilfe suchen soll.... hab da nichts wirklich gutes gefunden
Bitte warten ..
Mitglied: bastla
15.01.2010 um 22:01 Uhr
Hallo marci3xXx!

Ist vielleicht wirklich nicht ganz einfach herauszulesen ...

Versuch es damit:
for /f "delims=" %%g in (xyz.txt) do for %%i in (%%g) do >>abc.txt echo %%i
Soferne Du noch mehr mit den eingelesenen Werten vorhast (und diese daher tatsächlich jeweils einer Variablen zuweisen möchtest), kommt es darauf an, ob es in den Daten ein "!" gibt oder nicht - in ersterem Falle etwa so:
01.
@echo off & setlocal enabledelayedexpansion 
02.
for /f "delims=" %%g in (xyz.txt) do for %%i in (%%g) do ( 
03.
    set "var=%%i" 
04.
    echo !var! 
05.
)
Für den Fall 2:
01.
@echo off & setlocal 
02.
for /f "delims=" %%g in (xyz.txt) do for %%i in (%%g) do set "var=%%i" & call :ProcessValue 
03.
goto :eof 
04.
 
05.
:ProcessValue 
06.
echo %var% 
07.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: 84544
15.01.2010 um 22:14 Uhr
ok danke ich glaub damit kann ich was anfangen

eigentlich habe ich mit der variable ne ganze menge vor^^ wieviele befehle/zeilen kann ich denn in "do (.........)" anbringen? hatte mal irgendwie probleme nach 8 stück oder so.... oder kann ich das dann unter ":processvalue" alles schreiben?
Bitte warten ..
Mitglied: bastla
15.01.2010 um 22:19 Uhr
Hallo Marci3xXx!

Ob es tatsächlich eine Beschränkung gibt, wird uns vermutlich Biber sagen können - mir ist dazu nix bekannt ...

Wenn Du die Unterprogrammvariante wählst, beginnt bei ":ProcessValue" ein zusätzlicher Batch in einer neuen Instanz - da wirst Du auf jeden Fall genug Platz haben.

Grüße
bastla
Bitte warten ..
Mitglied: 84544
15.01.2010 um 23:29 Uhr
vielen dank das hat mir richtig weitergeholfen
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL Anywhere: FOREACH möglich? (4)

Frage von BirdyB zum Thema Datenbanken ...

Windows Installation
Automatisierte Clientinstallation - Wie umsetzen? (9)

Frage von speedy26gonzales zum Thema Windows Installation ...

Netzwerkmanagement
Redundante Internetverbindung richtig umsetzen ? (8)

Frage von Koma1982 zum Thema Netzwerkmanagement ...

Router & Routing
Routerkaskade richtig umsetzen (5)

Frage von Frankenstein zum Thema Router & Routing ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Infineon TPMs unsicher!

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(5)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...