Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Befehle aus einer ini datei ausführen?

Frage Entwicklung Batch & Shell

Mitglied: Necros20X

Necros20X (Level 1) - Jetzt verbinden

23.06.2010 um 14:16 Uhr, 7920 Aufrufe, 10 Kommentare

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
Mitglied: colinardo
23.06.2010 um 14:33 Uhr
Wenn die config.ini nur aus einer Zeile besteht geht das folgende:

01.
for /f "usebackq tokens=2 delims==" %%i IN (config.ini) do set inipassword=%%i 
02.
set /p Password=Wie lautet das Passwort? 
03.
if "%Password%" == "%inipassword%" goto PASSWORD_OK 
04.
goto PASSWORD_FALSCH 
05.
 
06.
:PASSWORD_OK 
07.
echo Du hast das richtige Passwort eingegeben 
08.
goto END 
09.
 
10.
:PASSWORD_FALSCH 
11.
echo Passwort falsch ! 
12.
goto END 
13.
 
14.
:END 
15.
pause
Bitte warten ..
Mitglied: bankaifan
23.06.2010 um 14:50 Uhr
Passt perfekt Softmeister :D

noch eine kleine, wenn auch nicht ganz so "perfekte" lösung wäre

01.
@echo off 
02.
set cfgpath="%CD%\config.ini" 
03.
set /P Password=Wie lautet das Passwort?  
04.
findstr /C:"%Password%" %cfgpath%> nul 
05.
if ERRORLEVEL 1 GOTO :PASSWORD_FALSCH 
06.
GOTO :PASSWORD_RICHTIG 
07.
 
08.
:PASSWORD_RICHTIG 
09.
echo Du hast das richtige Passwort eingegeben. 
10.
goto :end 
11.
 
12.
:PASSWORD_FALSCH 
13.
echo Passwort falsch! 
14.
goto :end 
15.
 
16.
:end 
17.
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
Bitte warten ..
Mitglied: bastla
23.06.2010 um 14:55 Uhr
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
Bitte warten ..
Mitglied: Necros20X
23.06.2010 um 14:56 Uhr
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...
Bitte warten ..
Mitglied: bankaifan
23.06.2010 um 14:58 Uhr
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
Bitte warten ..
Mitglied: bastla
23.06.2010 um 14:59 Uhr
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
Bitte warten ..
Mitglied: Necros20X
23.06.2010 um 15:01 Uhr
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
Bitte warten ..
Mitglied: bankaifan
23.06.2010 um 15:07 Uhr
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 ^^
Bitte warten ..
Mitglied: Necros20X
23.06.2010 um 15:37 Uhr
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
Bitte warten ..
Mitglied: Necros20X
23.06.2010 um 16:06 Uhr
Schon gut habs schon =)
Thread Closed =)))
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Terminalserver .ini Datei unter C:Windows (8)

Frage von geocast zum Thema Windows Server ...

Batch & Shell
gelöst Variable aus ini Datei auslesen und weiterverwenden (17)

Frage von n0cturne zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...