Befehle aus einer ini datei ausführen?
Hallo erstmal,
Es geht um folgendes.
Ich habe mir eine config.ini mal schnell hergezaubert in nur eine
Configuration steht:
Config.ini-
Passwort=
Ich möchte nun das der User hintendran das gewüsnchte Passwort schreibt und genau dieses Passwort dann abgefragt wird.
Z.B. Lasse ich meine Batch eine Frage stellen:
set /p Password=Wie lautet das Passwort?
Und jetzt soll die Batch nur dann weiter machen wenn der User genau das einträgt, was in der Config.ini steht
also würde es so aussehen
Passwort = "password"
sollte die batch nur weitermachen wenn password eingegeben wurde.
Danke schonmal
Ich habe mir eine config.ini mal schnell hergezaubert in nur eine
Configuration steht:
Config.ini-
Passwort=
Ich möchte nun das der User hintendran das gewüsnchte Passwort schreibt und genau dieses Passwort dann abgefragt wird.
Z.B. Lasse ich meine Batch eine Frage stellen:
set /p Password=Wie lautet das Passwort?
Und jetzt soll die Batch nur dann weiter machen wenn der User genau das einträgt, was in der Config.ini steht
also würde es so aussehen
Passwort = "password"
sollte die batch nur weitermachen wenn password eingegeben wurde.
Danke schonmal
Please also mark the comments that contributed to the solution of the article
Content-Key: 145496
Url: https://administrator.de/contentid/145496
Printed on: April 18, 2024 at 10:04 o'clock
10 Comments
Latest comment
Wenn die config.ini nur aus einer Zeile besteht geht das folgende:
for /f "usebackq tokens=2 delims==" %%i IN (config.ini) do set inipassword=%%i
set /p Password=Wie lautet das Passwort?
if "%Password%" == "%inipassword%" goto PASSWORD_OK
goto PASSWORD_FALSCH
:PASSWORD_OK
echo Du hast das richtige Passwort eingegeben
goto END
:PASSWORD_FALSCH
echo Passwort falsch !
goto END
:END
pause
Passt perfekt Softmeister :D
noch eine kleine, wenn auch nicht ganz so "perfekte" lösung wäre
Ist etwas leichter verständlich für laien, macht aber probleme wenn z. B. Passwort oder wort usw. als Password gewählt würde.
dafür ist es hier egal in welcher Zeile das Passwort steht. Einfacher wäre es dann noch wenn du einfach das "Passwort=" weglassen würdest...aber gut, deine entscheidung :D
noch eine kleine, wenn auch nicht ganz so "perfekte" lösung wäre
@echo off
set cfgpath="%CD%\config.ini"
set /P Password=Wie lautet das Passwort?
findstr /C:"%Password%" %cfgpath%> nul
if ERRORLEVEL 1 GOTO :PASSWORD_FALSCH
GOTO :PASSWORD_RICHTIG
:PASSWORD_RICHTIG
echo Du hast das richtige Passwort eingegeben.
goto :end
:PASSWORD_FALSCH
echo Passwort falsch!
goto :end
:end
pause > nul
Ist etwas leichter verständlich für laien, macht aber probleme wenn z. B. Passwort oder wort usw. als Password gewählt würde.
dafür ist es hier egal in welcher Zeile das Passwort steht. Einfacher wäre es dann noch wenn du einfach das "Passwort=" weglassen würdest...aber gut, deine entscheidung :D
macht aber probleme wenn z. B. Passwort oder wort usw. als Password gewählt würde.
... was sich aber durch das Einbeziehen des "=" verbessern lässt :findstr /C:"=%Password%" %cfgpath% >nul || goto :PASSWORD_FALSCH
goto: PASSWORD_FALSCH
" spart dann noch noch die Zeilen 5 bis 8 ein ...Grüße
bastla
Also ich vermute mal dass sich das mit Bastla´s beitrag erledigt hat oder?
Sonst weiß ich nicht was genau du noch willst
@bastla Danke dir. Hätt ich auch selbst drauf kommen können :D und diese bedingte Ausführung ... yoa... stimmt schon :D
Sonst weiß ich nicht was genau du noch willst
@bastla Danke dir. Hätt ich auch selbst drauf kommen können :D und diese bedingte Ausführung ... yoa... stimmt schon :D
Hallo Necros20X und willkommen im Forum, hallo Softmeister und bankaifan!
Zum Auslesen des Passworts aus der Datei sollte sich folgende Zeile eignen:
Voraussetzung ist, dass die Zeile in der Ini wie vorgesehen mit "Passwort=" in dieser Schreibweise und ohne zB ein führendes Leerzeichen enthalten ist ...
Grüße
bastla
Zum Auslesen des Passworts aus der Datei sollte sich folgende Zeile eignen:
for /f "tokens=1* delims==" %%i in ('findstr /b "Passwort=" %cfgpath%') do set "PWausIni=%%j"
Grüße
bastla