Batch: mit FOR-Schleife .txt auslesen und in eine Variable speichern


chrysler

Erfahrenes Mitglied
Guten Tag.

Ich probiere gerade an einer batch, aber ich komme nicht weiter.
Und zwar möchte ich mit Hilfe einer FOR-Schleife eine .txt-Datei auslesen
und die ersten beiden Token in eine Variable speichern.

Code:
@title Mit FOR Variablen speichern
FOR /F "eol=; tokens=1,2* usebackq delims=, " %%i in ("mit FOR Variable fuellen.txt") do @set "Name"="%%i" @set "Nachname"="%%j"
@echo %Name%
@echo %Nachname%

In der Datei "mit FOR Variable fuellen.txt" stehen zwei Namen. Wie kann ich aus einer Datei, die in ihrem Namen Leerzeichen enthält, tokens auslesen und diese in Variablen speichern?
 

deepthroat

Erfahrenes Mitglied
Hi.

Probier's mal so:
Code:
@FOR /F "eol=; tokens=1,2* usebackq delims=, " %%i in ("mit FOR variable fuellen.txt") do @( 
   @set name=%%i 
   @set nachname=%%j )
@echo %Name%
@echo %Nachname%
Gruß
 

chrysler

Erfahrenes Mitglied
Guten Tag.

Ich probiere gerade an einer batch, aber ich komme nicht weiter.
Und zwar möchte ich mit Hilfe einer FOR-Schleife eine .txt-Datei auslesen
und die ersten beiden Token in eine Variable speichern.

Code:
@title Mit FOR Variablen speichern
FOR /F "eol=; tokens=1,2* usebackq delims=, " %%i in ("mit FOR Variable fuellen.txt") do @set "Name"="%%i" @set "Nachname"="%%j"
@echo %Name%
@echo %Nachname%

In der Datei "mit FOR Variable fuellen.txt" stehen zwei Namen. Wie kann ich aus einer Datei, die in ihrem Namen Leerzeichen enthält, tokens auslesen und diese in Variablen speichern?

Hi.

Probier's mal so:
Code:
@FOR /F "eol=; tokens=1,2* usebackq delims=, " %%i in ("mit FOR variable fuellen.txt") do @( 
   @set name=%%i 
   @set nachname=%%j )
@echo %Name%
@echo %Nachname%
Gruß

Danke.
Ich habe nun ähnliches probiert:
Code:
@title Mit FOR Variablen speichern
FOR /F "eol=; tokens=1,2* usebackq delims=, " %%i in ("mit FOR Variable fuellen.txt") do @set "Name"="%%i" & @set "Nachname"="%%j"
@echo %Name%
@echo %Nachname%
Kannst du mir den Unterschied sagen?
 

deepthroat

Erfahrenes Mitglied
Der Ampersand trennt mehrere Befehle auf einer Befehlszeile voneinander, die Klammern gruppieren Befehle, so dass man diese auf mehrere Zeilen verteilen kann.

\edit: Und wenn du schreibst
Code:
set "Name"="%%i"
wird der Ausdruck von den ersten bis zu den letzten Anführungszeichen betrachtet. Die Variable heißt also nicht Name, sondern Name", so das bei deiner Ausgabe dann nichts ausgegeben wird (außer die Variable hat bereits einen Wert).

Gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Forum-Statistiken

Themen
272.360
Beiträge
1.558.622
Mitglieder
187.833
Neuestes Mitglied
SirrDansen