CMD Programm User abfragen
Hallo,
Ich stehe bei einem wahrscheinlich simplen Anwendungsfall an.
Ich möchte von einer .txt Datei die User abfragen und mit dem eingeloggten abgleichen.
Wenn der angemeldete User in der txt Datei vorhanden ist, soll er zu einer bestimmten Zeile (goto) springen!
Wenn der User nicht in der txt Datei vorhanden ist, soll das Script normal abgearbeitet werden.
meine bisherigen Programmierkünste:
Vielleicht hat jemand so einen gleiche Fall, und könnte mir behilflich sein.
Ich stehe bei einem wahrscheinlich simplen Anwendungsfall an.
Ich möchte von einer .txt Datei die User abfragen und mit dem eingeloggten abgleichen.
Wenn der angemeldete User in der txt Datei vorhanden ist, soll er zu einer bestimmten Zeile (goto) springen!
Wenn der User nicht in der txt Datei vorhanden ist, soll das Script normal abgearbeitet werden.
meine bisherigen Programmierkünste:
@ECHO off
SET Pfad=D:\test\
cls
for /F %%f IN ("%pfad%delUser.txt") DO (
IF "%%f" == "%username%" (
goto delete
) ELSE (
goto start
)
)
Vielleicht hat jemand so einen gleiche Fall, und könnte mir behilflich sein.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1168606823
Url: https://administrator.de/contentid/1168606823
Ausgedruckt am: 14.11.2024 um 17:11 Uhr
4 Kommentare
Neuester Kommentar
Vielleicht hat jemand so einen gleiche Fall, und könnte mir behilflich sein.
Hi, wofür die ganzen Anführungszeichen?
SET Pfad=D:\test\
cls
for /F %%f IN (%pfad%delUser.txt) DO (
IF %%f == %username% (
goto delete
) ELSE (
goto start
)
)
/pp
p.s. Wofür die gotos? Ich würde nicht aus der Schleife rausspringen, pack die Befehle die bei IF laufen sollen in die betreffenden Klammern und bei ELSE genauso.
Siehe auch
Batchprogrammierung GOTO-Sprungmarken innerhalb einer Schleife.
Oder: wer sucht, der findet (meistens )
https://administrator.de/latest/?search=for+goto&source=head
Batchprogrammierung GOTO-Sprungmarken innerhalb einer Schleife.
Oder: wer sucht, der findet (meistens )
https://administrator.de/latest/?search=for+goto&source=head
Hat mehrere essentielle Gründe zur Fehlervermeidung!
Erstens wenn der Pfad Leerzeichen beinhalten würde, zweitens im IF-Vergleich und evt. leerer Lauf-Variable fällt diese mit einem Syntax-Fehler auf die Fresse weil die Variable dann leer ist deswegen setzt man dort bei erwarteten oder leeren Strings immer einen Delimiter damit der Vergleich trotzdem noch funktioniert (gib mal
Wobei ich das ganze stattdessen gleich so ohne lahme Schleife machen würde
Erstens wenn der Pfad Leerzeichen beinhalten würde, zweitens im IF-Vergleich und evt. leerer Lauf-Variable fällt diese mit einem Syntax-Fehler auf die Fresse weil die Variable dann leer ist deswegen setzt man dort bei erwarteten oder leeren Strings immer einen Delimiter damit der Vergleich trotzdem noch funktioniert (gib mal
if == UserXYZ
in die CMD ein dann siehst du was ich meine, drittens evt. Sonderzeichen die das ganze zum Fall bringen könnten.@echo off
set "Pfad=D:\test"
for /f "delims=" %%f in ("%pfad%\delUser.txt") do (
if /i "%%f" == "%username%" echo Do something with the result
)
Wobei ich das ganze stattdessen gleich so ohne lahme Schleife machen würde
findstr /ilxc:"%username%" "D:\test\deluser.txt" >nul 2>&1 && (
echo User exists, do something
) || (
echo User does not exist in file, do something else
)