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



## chrysler (11. August 2007)

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.


```
@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 (13. August 2007)

Hi.

Probier's mal so:
	
	
	



```
@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 (13. August 2007)

chrysler hat gesagt.:


> 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
> ...





deepthroat hat gesagt.:


> Hi.
> 
> Probier's mal so:
> 
> ...



Danke.
Ich habe nun ähnliches probiert:

```
@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 (14. August 2007)

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
	
	
	



```
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ß


----------

