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.
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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 64427
Url: https://administrator.de/contentid/64427
Printed on: April 19, 2024 at 07:04 o'clock
3 Comments
Latest comment
Guten Abend simon78,
herzlich Willkommen hier im Forum!
Hab da noch ein Fragen an dich, die mir auf der Zunge brennen:
Grüße
Dani
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
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:
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:
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]
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
SucheZahl.bat D:\Verzeichnis\Datei.txt
Wunschgemäß wird nur die Zahl aus der allerersten passenden Zeile verwendet.
Grüße
bastla
[Edit] Zweite "for"-Zeile ("findstr") ergänzt/korrigiert [/Edit]