Zeilen und Spalten finden per Batch
Hallo liebe Gemeinde, ich habe folgendes Problem, ich habe ein Programm was mir folgende daten in einer datei ausgibt:
01380006100
014810000284
017300000002231
017360000002231
0152002Privat
0173101Testmann
0173301Testmann
0133102Otto
0133302Otto
017310312021945
0153303120245
023310644141 Dortmund
023330644141 Dortmund
0253107Wetsfalendamm 40
0253307Wetsfalendamm 40
01031101
01036211
01380006200
014810000102
017300000002231
017360000002231
014410400000
017620006012009
0108404N
Testmann ist der Nachname und Otto der vorname, die zahlen sind von kunde zu kunde anders, ich brauche nur den vor und nachnamen in einem textdukument, die zahlen sind immer andes, ich müsste quasi nach buchstaben suchen, die zeilen bleiben eig. immer gleich nur die zahlen könnten mal mehr oder mal weniger sein.
Danke im Vorraus
Manuel
01380006100
014810000284
017300000002231
017360000002231
0152002Privat
0173101Testmann
0173301Testmann
0133102Otto
0133302Otto
017310312021945
0153303120245
023310644141 Dortmund
023330644141 Dortmund
0253107Wetsfalendamm 40
0253307Wetsfalendamm 40
01031101
01036211
01380006200
014810000102
017300000002231
017360000002231
014410400000
017620006012009
0108404N
Testmann ist der Nachname und Otto der vorname, die zahlen sind von kunde zu kunde anders, ich brauche nur den vor und nachnamen in einem textdukument, die zahlen sind immer andes, ich müsste quasi nach buchstaben suchen, die zeilen bleiben eig. immer gleich nur die zahlen könnten mal mehr oder mal weniger sein.
Danke im Vorraus
Manuel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 105334
Url: https://administrator.de/forum/zeilen-und-spalten-finden-per-batch-105334.html
Ausgedruckt am: 11.04.2025 um 04:04 Uhr
25 Kommentare
Neuester Kommentar

Servus,
wenn ich den Inhalt der Datei und deine Frage richtig verstehe willst du alle Nicht Nummern aus der Textdatei herauslösen.
Aber woher soll das Script dann zwischen Vor/Nach Namen und Ortsangaben unterscheiden?
Bzw. Westfalendamm 40 - ganz ohne (Haus)Nummer ?
Führe dein "problem" doch bitte etwas genauer aus.
Gruß
wenn ich den Inhalt der Datei und deine Frage richtig verstehe willst du alle Nicht Nummern aus der Textdatei herauslösen.
Aber woher soll das Script dann zwischen Vor/Nach Namen und Ortsangaben unterscheiden?
Bzw. Westfalendamm 40 - ganz ohne (Haus)Nummer ?
Führe dein "problem" doch bitte etwas genauer aus.
Gruß

ich versteh dich nicht.
und mir widerstrebt es eigentlich Grußlos begrüßt zu werden
0173101 ist ungleich 0133102 und ungleich 023310644141 und unterscheidet sich auch von 0253107
Führe dein "problem" doch bitte etwas genauer aus.
war offensichtlich falsch Formuliert.
* Bist du dir sicher, das die Daten passen?
* Aber woher soll das Script dann zwischen Vor/Nach Namen und Ortsangaben unterscheiden?
Grußlos zurück
und mir widerstrebt es eigentlich Grußlos begrüßt zu werden
0173101Testmann
0173301Testmann
0133102Otto
0133302Otto
017310312021945
0153303120245
023310644141 Dortmund
023330644141 Dortmund
0253107Wetsfalendamm 40
0253307Wetsfalendamm 40
0173301Testmann
0133102Otto
0133302Otto
017310312021945
0153303120245
023310644141 Dortmund
023330644141 Dortmund
0253107Wetsfalendamm 40
0253307Wetsfalendamm 40
Ich brauch nur den vor und nachnamen
?unterscheiden könnte man das mit den zeilen, die sind immer gleich
???0173101 ist ungleich 0133102 und ungleich 023310644141 und unterscheidet sich auch von 0253107
Führe dein "problem" doch bitte etwas genauer aus.
war offensichtlich falsch Formuliert.
* Bist du dir sicher, das die Daten passen?
* Aber woher soll das Script dann zwischen Vor/Nach Namen und Ortsangaben unterscheiden?
Grußlos zurück

In der einen Datei sind die gesuchten Infos in Zeile 7 & 8 in der anderen wohl auch?
und sind die gesuchten Daten immer in Zeile 7 und 8?
richtig [_]
falsch [_]
falsch [_]
und sind die gesuchten Daten immer in Zeile 7 und 8?
richtig [_]
falsch [_]
falsch [_]
Hallo Maffi und TimoBeil!
Wenn aus den Zeilen 7 und 8 demnach jeweils der Zeileninhalt ab der ersten "Nicht-Ziffer" benötigt wird, könnte das etwa so gehen:
Für den Fehlerfall (Zeile 7 oder 8 enthält nur Ziffern oder ist leer) wird derzeit nur eine Fehlermeldung ausgegeben (und auf einen Tastendruck gewartet).
Grüße
bastla
[Edit] Fehlerbehandlung etwas verbessert [/Edit]
Wenn aus den Zeilen 7 und 8 demnach jeweils der Zeileninhalt ab der ersten "Nicht-Ziffer" benötigt wird, könnte das etwa so gehen:
@echo off & setlocal
set "Ein=D:\Pat.bdt"
set "Aus=D:\Pat.txt"
set "Zeilen=7,8"
set "Ziffern=0123456789"
if exist "%Aus%" del "%Aus%"
for %%i in (%Zeilen%) do for /f "tokens=1-2 delims=:" %%a in ('findstr /n "^" "%Ein%"^|findstr /b "%%i:"') do set "Zeile=%%b" & call :ProcessLine %%i
goto :eof
:ProcessLine
if not defined Zeile goto :Error
set /a Z=-1
:Loop
set /a Z+=1
call set Zeichen=%%Zeile:~%Z%,1%%
if not defined Zeichen goto :Error
echo %Ziffern%|findstr "%Zeichen%">nul && goto :Loop
call set "Name=%%Zeile:~%Z%%%"
>>"%Aus%" echo %Name%
goto :eof
:Error
echo In Zeile %1: "%Zeile%" konnte kein Name gefunden werden!
pause
goto :eof
Grüße
bastla
[Edit] Fehlerbehandlung etwas verbessert [/Edit]
@miniversum
Hatte ich aufgrund von
) - allerdings kann das wirklich nur Maffi genau wissen ...
Grüße
bastla
Hatte ich aufgrund von
die zeilen bleiben eig. immer gleich nur die zahlen könnten mal mehr oder mal weniger sein.
anders interpretiert (und wäre ansonsten auch weniger spannend gewesen Grüße
bastla

Servus Bastla & Miniversum & Maffi,
das mit den 7stellen (wenn es denn so wäre) macht aber auch nichts denn die Strasse hat auch nur 7 stellen.
Bzw. offensichtlich jede "zahlenkollone" besteht aus 7 Nummern - bei manchen folgt eine Nummer (PLZ).
Da ich gestern meine Frage falsch gestellt habe - versuche ichs also nochmal:
Gruß
das mit den 7stellen (wenn es denn so wäre) macht aber auch nichts denn die Strasse hat auch nur 7 stellen.
Bzw. offensichtlich jede "zahlenkollone" besteht aus 7 Nummern - bei manchen folgt eine Nummer (PLZ).
Da ich gestern meine Frage falsch gestellt habe - versuche ichs also nochmal:
In der einen Datei sind die gesuchten Infos sowohl in Zeile 6 & 7 sowie in 8 & 9.
Gruß
Hallo Maffi!
Ersetze das "Hauptprogramm" (die Zeilen 1 bis 10) durch
Zur Sicherheit vielleicht noch ein
unmittelbar an den Anfang des Unterprogrammes ":ProcessLine" - dann kannst Du nach jeder "for"-Schleife einfach kontrollieren, ob ein Name extrahiert werden konnte und entsprechend darauf reagieren (zB vor Zeile 9 neu):
Das würde dann auch das allgemeine Error-Handling im Unterprogramm überflüssig machen (anstelle von "goto :Error" einfach "goto :eof") ...
Grüße
bastla
[Edit] Fehlende Anführungszeichen in den Zeilen 9 und 11 ergänzt. [/Edit]
Ersetze das "Hauptprogramm" (die Zeilen 1 bis 10) durch
@echo off & setlocal
set "Ein=D:\Pat.bdt"
set "Aus=D:\Pat.txt"
set "Ziffern=0123456789"
if exist "%Aus%" del "%Aus%"
for /f "tokens=1-2 delims=:" %%a in ('findstr /n "^" "%Ein%"^|findstr /b "7:"') do set "Zeile=%%b" & call :ProcessLine %%i
set "Nachname=%Name%"
for /f "tokens=1-2 delims=:" %%a in ('findstr /n "^" "%Ein%"^|findstr /b "8:"') do set "Zeile=%%b" & call :ProcessLine %%i
set "Vorname=%Name%"
:: Ab hier, was denn sonst noch so anliegt ...
::
::
goto :eof
set Name=
if not defined Name echo Kein Zuname gefunden & pause & goto :eof
Grüße
bastla
[Edit] Fehlende Anführungszeichen in den Zeilen 9 und 11 ergänzt. [/Edit]

Servus,
meine Verwirrend bezeichneten Böcke wurden als Biber erkannt und verschwinden daher, damit es nicht undurchschaubar wird
Merci an Bastla und seine wachen Augen
PS: Code bitte in <> nicht in Klammern
Gruß
meine Verwirrend bezeichneten Böcke wurden als Biber erkannt und verschwinden daher, damit es nicht undurchschaubar wird
Merci an Bastla und seine wachen Augen
PS: Code bitte in <> nicht in Klammern
Gruß
@timobeil
Die von Dir bemängelten "Böcke" sind eigentlich "Biber"
und sollten daher nicht verändert werden (bitte gelegentlich testen) ...
@Maffi
Sorry - Dein eben geposteter Code und Deine am 06.01.2009 um 18:28:05 Uhr dargestellten Inhaltsbeispiele erzeugen bei mir die gewünschten Ausgaben, was den Verdacht nahelegt, dass Deine Ausgangsdatei die Ursache des Problems sein könnte (ev Unicode?) ...
Grüße
bastla
Die von Dir bemängelten "Böcke" sind eigentlich "Biber"
@Maffi
Sorry - Dein eben geposteter Code und Deine am 06.01.2009 um 18:28:05 Uhr dargestellten Inhaltsbeispiele erzeugen bei mir die gewünschten Ausgaben, was den Verdacht nahelegt, dass Deine Ausgangsdatei die Ursache des Problems sein könnte (ev Unicode?) ...
Grüße
bastla

Servus Manuel,
auch auf die Gefahr das ich wieder daneben liegen sollte
auch auf die Gefahr das ich wieder daneben liegen sollte
set "Nachname=%Name%
ändern in:set "Nachname=%Name%"
Gruß