Mit Batch einen Ordne mit .txt Dateien nach einem Wort durchsuchen
Hallo
Ich möchte eine Art login mit Batch programieren.
Als erstes gibt es eine Eingabe dort gibt man seinen Benutzername ein.
Dieser soll in einem Ordner (names "USERS") der voll mit .txt Dateien ist gesucht werden.
Mein erster Versuch:
Oder noch besser wenn Datei und Zeile in 2 Variablen gespeichert werden.
Und dann noch eine Frage ist es möglich in einer Datei nur eine Zeile zu durchsuchen?
Ich hoffe das ist jetzt nicht zu viel für euch.
Schonmal Danke im vorraus
LG
Noah
Ich möchte eine Art login mit Batch programieren.
Als erstes gibt es eine Eingabe dort gibt man seinen Benutzername ein.
Dieser soll in einem Ordner (names "USERS") der voll mit .txt Dateien ist gesucht werden.
Mein erster Versuch:
@echo off
findstr "%USER%" %USERPROFILE%\Desktop\USERS\*.txt && echo Gefunden!
PAUSE
Das funktioniert auch zur hälfte aber hat jemand eine Ahnung wie man das machen kann, dass auch angezeigt wird in welcher Datei und in welcher Zeile der Username gefunden wurde.findstr "%USER%" %USERPROFILE%\Desktop\USERS\*.txt && echo Gefunden!
PAUSE
Oder noch besser wenn Datei und Zeile in 2 Variablen gespeichert werden.
Und dann noch eine Frage ist es möglich in einer Datei nur eine Zeile zu durchsuchen?
Ich hoffe das ist jetzt nicht zu viel für euch.
Schonmal Danke im vorraus
LG
Noah
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 280090
Url: https://administrator.de/forum/mit-batch-einen-ordne-mit-txt-dateien-nach-einem-wort-durchsuchen-280090.html
Ausgedruckt am: 09.04.2025 um 01:04 Uhr
8 Kommentare
Neuester Kommentar
Hallo noah1400!
Versuch es etwa so (ungetestet):
Grüße
bastla
[Edit] Korrektur in Zeile 7 vorgenommen [/Edit]
Versuch es etwa so (ungetestet):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off & setlocal
set "Ordner=%USERPROFILE%\Desktop\USERS"
set "Datei="
set "Zeile="
pushd "%Ordner%"
for /f "tokens=1* delims=:" %%i in ('findstr /i "%USER%" *.txt') do (
set "Datei=%%i"
set "Zeile=%%j"
)
popd
if not defined Datei (
echo "%USER%" nicht gefunden!
pause
goto :eof
)
echo Gefunden: "%Zeile%" in "%Datei%"
bastla
[Edit] Korrektur in Zeile 7 vorgenommen [/Edit]
Hallo noah1400!
Was meinst Du mit "angegebener Zeile" - es wird doch die Zeile anhand von %USER% erst gesucht ...
Magst Du vielleicht einmal ein Beispiel einer solchen Datei und das gewünschte Ergebnis (als "Code" formatiert) posten?
Grüße
bastla
Was meinst Du mit "angegebener Zeile" - es wird doch die Zeile anhand von %USER% erst gesucht ...
Magst Du vielleicht einmal ein Beispiel einer solchen Datei und das gewünschte Ergebnis (als "Code" formatiert) posten?
Grüße
bastla
Hallo noah1400!
Über die Sinnhaftigkeit von als Klartext gespeicherten Passwörtern will ich gar nicht diskutieren, und für die Verwendung einzelner Dateien anstatt einfach einer Liste in einer einzigen Datei wirst Du auch gute Gründe haben - daher: Wenn die Datei tatsächlich %USER%.txt heißen muss und die Zeile 2 nur das Passwort enthält, sollte eigentlich
genügen.
Die letzte Zeile ist natürlich als Demo gedacht und der Batch ist ungetestet ...
Grüße
bastla
Über die Sinnhaftigkeit von als Klartext gespeicherten Passwörtern will ich gar nicht diskutieren, und für die Verwendung einzelner Dateien anstatt einfach einer Liste in einer einzigen Datei wirst Du auch gute Gründe haben - daher: Wenn die Datei tatsächlich %USER%.txt heißen muss und die Zeile 2 nur das Passwort enthält, sollte eigentlich
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
set "PW="
if exist "%USERPROFILE%\Desktop\USERS\%USER%.txt" (
for /f "usebackq skip=1 delims=" %%i in ("%USERPROFILE%\Desktop\USERS\%USER%.txt") do if not defined PW set "PW=%%i"
) else (
echo "%USER%" nicht gefunden!
pause
goto :eof
)
echo Passwort: %PW %
Die letzte Zeile ist natürlich als Demo gedacht und der Batch ist ungetestet ...
Grüße
bastla