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

Foreach in Batch umsetzen

Frage Entwicklung Batch & Shell

Mitglied: 84544

84544 (Level 1)

15.01.2010, aktualisiert 21:04 Uhr, 8416 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
Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (2)

Frage von tralveller zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (20)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...