simon78

FINDSTR Problem!

Hallo,

ich habe eine Text-Datei, die so aussieht:

abcd123.f
abce123.f
abcf123.f
abcg123.f

Ich brauche von dieser Datei nur die Nummer (123 in diesem Fall und nur 1x). Das Ergebniss sollte in eine Variable gespeichert werden.
Ich habe mit findstr versucht aber ohne Erfolg.

Hat jemand eine Lösung?

Danke im Voraus.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 64427

Url: https://administrator.de/forum/findstr-problem-64427.html

Ausgedruckt am: 19.05.2025 um 10:05 Uhr

Dani
Dani 22.07.2007 um 22:47:46 Uhr
Goto Top
Guten Abend simon78,
herzlich Willkommen hier im Forum!

Hab da noch ein Fragen an dich, die mir auf der Zunge brennen:
  • Diese 4 Zeilen stehen in der Datei X oder sind das 4 extra Dateien in einem Ordner?
  • Stehen immer 4 Buchstaben vor den Zahlen?
  • Bleibt es bei dem 3 Ziffern?
  • Kommt nach den Zahlen nur noch .f?


Grüße
Dani
bastla
bastla 23.07.2007 um 08:35:32 Uhr
Goto Top
Hallo simon78!

Falls die Antwort auf Dani's erste Frage "alle .txt-Dateien aus D:\Verzeichnis" und auf die Fragen 2-4 jeweils "ja" lautet, sollte es etwa so gehen:
@echo off & setlocal
for %%f in (D:\Verzeichnis\*.txt) do call :ProcessFile "%%f"  
goto :eof
:ProcessFile
set Zahl=
for /f "delims=." %%i in ('findstr /c:".f" %1') do if not defined Zahl set Zahl=%%i  
set Zahl=%Zahl:~-3%
echo %Zahl% aus %~1
::alle weiteren Aktionen für diese Datei hier
::
::
goto :eof
Wenn nur eine Datei bearbeitet werden soll, könntest Du den Teil nach :ProcessFile als eigene Batchdatei verwenden und ihr beim Aufruf die Datei mitgeben, also etwa:
SucheZahl.bat D:\Verzeichnis\Datei.txt
oder %1 und %~1 durch eine Variable/einen Dateinamen ersetzen.

Wunschgemäß wird nur die Zahl aus der allerersten passenden Zeile verwendet.

Grüße
bastla

[Edit] Zweite "for"-Zeile ("findstr") ergänzt/korrigiert [/Edit]
simon78
simon78 23.07.2007 um 20:14:56 Uhr
Goto Top
Hallo bastla,

vielen Dank....hat geklappt!!!


Grüße
simon78