Bestimmte Zeile - ab bestimmter Position XY einer Textdatei als Dateinamen verwenden
Wie kann ich aus einer Textdatei (Bef12345.txt /Txt-Datei immer verschieden, aber nach dem Muster Bef*.txt) an immer der selben Zeile (21) den Name und Geburtstatum als Dateinamen verwenden, wobei ich am liebsten das Format 14061968_Mustermann, Karl hätte.
Die Zeile ist immer wie folgt aufgebaut.
" Patient: Mustermann, Karl *14.06.1968"
9 Leerzeichen stehen vor Patient: sind immer da und die Position des Geburtstags (* Postion 56) ist immer an der gleichen Stelle, wie angegeben - es sind aber keine Anführungszeichen vorhanden.
Ich hab vergeblich aus anderen Forenmeldungen etwas abzuwandeln - habs nicht hinbekommen.
Bewunderswert, wie einige soviel mit FOR und FINDSTR rausholen könne, ich kanns nicht.
Für Eure Hilfe vielen Dank.
Stitch
Die Zeile ist immer wie folgt aufgebaut.
" Patient: Mustermann, Karl *14.06.1968"
9 Leerzeichen stehen vor Patient: sind immer da und die Position des Geburtstags (* Postion 56) ist immer an der gleichen Stelle, wie angegeben - es sind aber keine Anführungszeichen vorhanden.
Ich hab vergeblich aus anderen Forenmeldungen etwas abzuwandeln - habs nicht hinbekommen.
Bewunderswert, wie einige soviel mit FOR und FINDSTR rausholen könne, ich kanns nicht.
Für Eure Hilfe vielen Dank.
Stitch
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 64397
Url: https://administrator.de/forum/bestimmte-zeile-ab-bestimmter-position-xy-einer-textdatei-als-dateinamen-verwenden-64397.html
Ausgedruckt am: 15.04.2025 um 17:04 Uhr
4 Kommentare
Neuester Kommentar
Versuchs mal damit (ungetestet, erst an ner Kopie versuchen!!!):
miniversum
@echo off & setlocal enabledelayedexpansion
for /F "delims=" %%F in ('dir /b /a-D Bef*.txt') do (
set "Line="
for /F "skip=20 delims=" %%L in ("%%F") do if not defined Line set Line=%%L
for /F "tokens=2,3,5,6,7 delims= ." %%N in ('echo !Line!') do set "newname=%%P%%Q%%R_%%N %%O"
ren "%%F" "!newname!"
)
miniversum
ok nachmal geprüft udn diesmal auch getestet:
@echo offfor /F "delims=" %%F in ('dir /b /a-D Bef*.txt') do call:ProzFile "%%F"
goto:eof
:ProzFile
set "Line="
for /F "skip=20 delims=" %%L in (%~1) do if not defined Line set Line=%%L
for /F "tokens=2,3,4,5,6 delims=.* " %%N in ('echo %Line%') do set "newname=%%P%%Q%%R_%%N, %%O"
ren "%~1" "%newname%%~x1"
goto:eof