pdiddo
Goto Top

Textdatei (.txt) Wort für Wort auslesen per batch (Spaltenweise)

Hi, ich habe eine Textdatei (.txt). Diese hat mehrere Zeilen.
Ich möchte diese gerne Spalte für Spalte auslesen, sodass ich einzelne Variablen wiedergeben kann.

Bisher habe ich Zeilenweise. Dies soll aber nun Wortweise geschehen.
%var1% sollte dann das erste Wort sein %var2% dann das zweite Wort usw.
Getrennt sind die Wörter mit Leerzeichen.


chcp 1252

@echo off &setlocal
for /f "delims=" %%i in (1.txt) do set tempvar=%%i &call :sub

echo %var1%
echo %var2%
...
echo %var30%

goto :eof

:sub
set /a n+=1
set var%n%=%tempvar%
goto :eof

pause

Content-ID: 303488

Url: https://administrator.de/contentid/303488

Ausgedruckt am: 26.11.2024 um 02:11 Uhr

rubberman
rubberman 02.05.2016 um 21:45:25 Uhr
Goto Top
Hallo pdiddo,

es wäre gut wenn du den Sinn der Aktion mit erklärt hättest, den in 99,9% aller Fälle ist die Zuweisung von elfundneunzig Variablen eines assoziativen Arrays unnötig und kontraproduktiv.

OK, zu deiner Frage.
@echo off &setlocal EnableDelayedExpansion
<"1.txt" set /p "tempvar="  

set i=1
set "var!i!=%tempvar: =" &set /a i+=1 &set "var!i!=%"  

echo Anzahl Variablen: %i%
echo Variablennamen und Werte:
set var

pause

Zur Funktionsweise dieses merkwürdigen SET Konstrukts siehe
split string into substrings based on delimiter

Grüße
rubberman