necros20x
Goto Top

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

Content-Key: 145496

Url: https://administrator.de/contentid/145496

Printed on: April 18, 2024 at 10:04 o'clock

Member: colinardo
colinardo Jun 23, 2010 at 12:33:22 (UTC)
Goto Top
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
Member: bankaifan
bankaifan Jun 23, 2010 at 12:50:45 (UTC)
Goto Top
Passt perfekt Softmeister :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
Member: bastla
bastla Jun 23, 2010 at 12:55:34 (UTC)
Goto Top
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
Die bedingte Ausführung des "goto: PASSWORD_FALSCH" spart dann noch noch die Zeilen 5 bis 8 ein ...

Grüße
bastla
Member: Necros20X
Necros20X Jun 23, 2010 at 12:56:01 (UTC)
Goto Top
Danke funktioniert soweit nur eine Sache.
Er soll nur das was hinter Passwort= steht als Passwort ansehen
Gibt es vllt. eine Möglichkeit das die Batch das Passwort= nicht lesen kann?
Wegmachen is nich der User soll ja wissen was dort hin kommt...
Member: bankaifan
bankaifan Jun 23, 2010 at 12:58:14 (UTC)
Goto Top
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
Member: bastla
bastla Jun 23, 2010 at 12:59:52 (UTC)
Goto Top
Hallo Necros20X und willkommen im Forum, hallo Softmeister und bankaifan!

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"
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
Member: Necros20X
Necros20X Jun 23, 2010 at 13:01:45 (UTC)
Goto Top
Jo sry während sie geantwortet hat habe ich gerade den Beitrag geschrieben
Was heißt ich konnte ihn nicht lesen.

Aber Daanke Funkt. Perfeckt
Member: bankaifan
bankaifan Jun 23, 2010 at 13:07:05 (UTC)
Goto Top
Du musst aber auch immer noch einen drauf setzen :D

Aber gut...so lerne auch ich immer mehr dazu...

meinst du du findest mal die zeit mir das "zeug" mit Tokens und delims zu erklären? ich werd nämlich aus der Windows-Hilfe nicht so richtig schlau :D

So...und dann viel Spaß beim Fussball ^^
Member: Necros20X
Necros20X Jun 23, 2010 at 13:37:25 (UTC)
Goto Top
Hey nochma =P

Da es mit dem selben zu tuhen hat (so ziemlich) fange ich nicht extra einen neuen Post an.
Hab noch eine Frage dazu!

klappt es auch das wenn in der config.ini

Passwort=
SavPath=

steht, das die Batch nur die zweite zeile (wieder ohne SavPath=) liest also nur das was dahinter steht.
die batch soll nämlich den Pfad des ordners wissen wo gesichert werden soll
das wiederum hat nichts mit dem passwort zu tuhen. Danke :P
Member: Necros20X
Necros20X Jun 23, 2010 at 14:06:16 (UTC)
Goto Top
Schon gut habs schon =)
Thread Closed =)))