138701
Sep 28, 2019 at 13:26:04 (UTC)
800
3
0
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
?
Please also mark the comments that contributed to the solution of the article
Content-Key: 499475
Url: https://administrator.de/contentid/499475
Printed on: April 25, 2024 at 12:04 o'clock
3 Comments
Latest comment
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