
138701
28.09.2019
Tokens alternative
Hallo Zusammen,
Hier mein Fehler:
test.txt kann so aussehen:
"Andreas | Phillip | Anna"
oder so:
"Janina | Amelia | Noah | Joel | Nina"
Ich weiß also nicht, wie viele tokens es gibt.
Wie verarbeite ich jeden Namen einzeln, so dass der Output so aussieht:
?
Hier mein Fehler:
for /f "eol=| delims=" %%g in (test.txt) do echo %%g
test.txt kann so aussehen:
"Andreas | Phillip | Anna"
oder so:
"Janina | Amelia | Noah | Joel | Nina"
Ich weiß also nicht, wie viele tokens es gibt.
Wie verarbeite ich jeden Namen einzeln, so dass der Output so aussieht:
Janina
Amelia
Noah
Joel
Nina
?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 499475
Url: https://administrator.de/forum/tokens-alternative-499475.html
Ausgedruckt am: 21.04.2025 um 13:04 Uhr
3 Kommentare
Neuester Kommentar

Statt den "|" wäre es einfacher z.B. gleich ";" als Trenner zu nutzen, das kann ne simple FOR-Schleife (ohne /f) neben anderen Trennern wie Leerzeichen, Komma,Gleichheitszeichen,Tab (siehe https://ss64.com/nt/syntax-esc.html#delimiters) direkt verarbeiten.
Geht aber auch so wie es jetzt bei dir ist indem du die Zeichen ersetzt und dann drüber mit einfachen FOR-Loop durchläufst:
Würde ich heutzutage aber gleich mit PS machen
oder die Bash
Fertsch.
Geht aber auch so wie es jetzt bei dir ist indem du die Zeichen ersetzt und dann drüber mit einfachen FOR-Loop durchläufst:
@echo off
set /p namen=<"D:\test.txt"
set "namen=%namen: | =;%"
for %%a in (%namen%) do echo %%a
Würde ich heutzutage aber gleich mit PS machen
(gc D:\test.txt) -split "\s*\|\s*"
sed -e 's/ | /\r\n/g' datei.txt
Oder Zeile lesen und dann die Textersetzung austricksen.
Vorher Gedanken machen wie die geschriebenen Werte auch wieder verarbeitet werden können, ist aber sinnvoller...
Steffen
@echo off
set "namen=Janina | Amelia | Noah | Joel | Nina"
echo %namen: | =&echo %
echo *** oder ***
set "name=%namen: | ="&call :out&set "name=%"
pause
exit /b
:out
echo %name%
exit /b
Steffen