Top-Themen

Aktuelle Themen (A bis Z)

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

For-geknurze

Frage Entwicklung Batch & Shell

Mitglied: Apop85

Apop85 (Level 1) - Jetzt verbinden

14.04.2013, aktualisiert 05:28 Uhr, 1399 Aufrufe, 4 Kommentare

Bin an einer Passwortabfrage mittels WBAT jedoch krieg ich die abfrage einfach nicht hin

Ich habe ein Formular kriert mittels welchem man neue User hinzufügen kann. Bevor es den User jedoch "Verschlüsselt" in die Datenbank überträgt soll jedoch geprüft werde ob der Name schon angelegt wurde.

Hier der entsprechende code:
01.
if exist system.cry ( for /f "tokens=1-3 delims=- " %%i in ('findstr "%mail%" "%cd%\system.cry"') do set "crypt1o=%%i"& set "crypt2o=%%j" & set "DBmail=%%k" 
02.
    if "%mail%" == "%DBmail%" ( set "error=Benutzer schon vorhanden" goto LOGINERROR ) else ( goto ADDUSER ) 
03.
	) else ( set error=Fehlende Datenbank & goto LOGINERROR ) 
04.
set "error=Fehler in der Befehlsschleife" 
05.
goto LOGINERROR 
Hier wirft er mich nach ADDUSER raus und da hab ich ein echo welches mir eigentlich angeben würde dass mail = DBmail wäre.... daher frage ich mich warum er den falschen Ausgang nimmt?

Selbiges passiert bei der nächsten Abfrage (wo die codierten Passwörtter und Benutzernamen überprüft werden.

01.
set error=0 
02.
if exist system.cry ( for /f "tokens=1-3 delims=-" %%i in ('findstr "%crypt1%" "%cd%\system.cry"') do set "crypt1o=%%i"& set "crypt2o=%%j" & set "DBmail=%%k" 
03.
    if "%crypt1%"=="%crypt1o%" if "%crypt2%"=="%crypt2o% ( goto START ) else set "error=Benutzername oder Passwort falsch" & goto LOGINERROR 
04.
	) else ( set error=Fehlende Datenbank & goto LOGINERROR ) 
05.
06.
goto LOGINERROR
Hier wirft er mich einfach nach LOGINERROR durch die letzte Zeile mit dem error=0, Heisst hier macht er gar nix bei der Abfrage...

Was ist hier bloss falsch? Ich komm nicht drauf Ich wette fast es ist eine Klammer so wie in den Meisten Forenbeiträgen zu diesem Thema ;)
Mitglied: colinardo
14.04.2013, aktualisiert um 10:13 Uhr
Hi Apop85,
denke der Fehler im ersten Code liegt in Zeile 02:
...( set "error=Benutzer schon vorhanden" goto LOGINERROR )...
das goto ist ohne & angehängt.

für den zweiten Code: versuch doch den Code mal übersichtlicher zu schreiben wen du meinst es liegt an einer Klammer, dann verlierst du nicht den Überblick:
01.
set error=0 
02.
if exist system.cry (  
03.
	for /f "tokens=1-3 delims=-" %%i in ('findstr "%crypt1%" "%cd%\system.cry"') do @( 
04.
	    set "crypt1o=%%i" 
05.
            set "crypt2o=%%j" 
06.
            set "DBmail=%%k" 
07.
08.
        if "%crypt1%"=="%crypt1o%" ( 
09.
  	    if "%crypt2%"=="%crypt2o% (  
10.
                goto START 
11.
	    ) else ( 
12.
	  	set "error=Benutzername oder Passwort falsch" 
13.
	  	goto LOGINERROR 
14.
15.
	) else (  
16.
	    set error=Fehlende Datenbank 
17.
	    goto LOGINERROR 
18.
19.
20.
goto LOGINERROR
Grüße Uwe
Bitte warten ..
Mitglied: bastla
14.04.2013, aktualisiert um 12:29 Uhr
... wobei die neu erstellten Variablenwerte %crypt1o%, %crypt2o% und %DBmail% ohne "delayedExpansion" ja ohnehin erst nach Zeile 19 zur Verfügung stünden - daher vielleicht besser
01.
set error=0 
02.
if not exist system.cry ( 
03.
    set "error=Fehlende Datenbank" 
04.
    goto LOGINERROR 
05.
06.
for /f "tokens=1-3 delims=-" %%i in ('findstr "%crypt1%" "system.cry"') do ( 
07.
    set "crypt1o=%%i" 
08.
    set "crypt2o=%%j" 
09.
    set "DBmail=%%k" 
10.
11.
if "%crypt1%"=="%crypt1o%" if "%crypt2%"=="%crypt2o% goto START 
12.
set "error=Benutzername oder Passwort falsch" 
13.
goto LOGINERROR
oder zumindest für die Abfragen anstelle von %crypt1o% und %crypt2o% die Variablen %%i und %%j verwenden ...

Anmerkungen:
  • Anstatt %error% mit 0 vorzubelegen würde ich die Variable gänzlich mit set "error=" löschen und später dann mit if defined error abfragen, da das auch ohne "delayedExpansion" jederzeit möglich ist.
  • Die Angabe eines Pfades mit "%cd%\" ist entbehrlich - es wird ohnehin das aktuelle Verzeichnis verwendet, wenn kein Pfad angegeben ist.

Grüße
bastla
Bitte warten ..
Mitglied: Apop85
14.04.2013 um 23:46 Uhr
Anmerkungen:
  • Anstatt %error% mit 0 vorzubelegen würde ich die Variable gänzlich mit set "error=" löschen und
später dann mit if defined error abfragen, da das auch ohne "delayedExpansion" jederzeit möglich ist.
gute Idee...

* Die Angabe eines Pfades mit "%cd%\" ist entbehrlich - es wird ohnehin das aktuelle Verzeichnis verwendet, wenn kein
Pfad angegeben ist.
Jupp is klar bei einigen Dingen ist es ganz nützlich weil die Compilierte Version im TMP-Ordner arbeitet dann kann ich %cd% verwenden für meine TMP-Daten und was sonst noch so aus der EXE extrahiert wird. An anderen Stellen muss ich es dann noch ändern sobald ich von den Ferien zurück bin und die Verzeichnisse unseres Geschäfts studiert habe....
und für Try%Error ists auch nützlich dass alles erst mal da wo ich bin erstellt wird.
Bitte warten ..
Mitglied: Apop85
16.04.2013, aktualisiert um 13:05 Uhr
Problem Solved!

01.
if exist "\user\system.cry ( for /f "tokens=1-1 delims=- " %%i in ('findstr "%ID%" "%cd%\user\system.cry"') do  
02.
	    set "IDo=%%i"  
03.
04.
	) else set "error=%cd%\user\system.cry existiert nicht" & goto LOGINERROR  
05.
 
06.
if "%ID%" == "%IDo%" goto FILO else ( set "error=123 Konto konnte nicht ^verifiziert werden ^Bitte Erneut Probieren" & goto LOGINERROR )
Danke für die Hilfestellung
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
FOR Schleife mit LOOP und nachfolgender FOR Schleife
gelöst Frage von miczarBatch & Shell6 Kommentare

Hallo zusammen, ich habe ein Problem mit einem Batchfile. Situation: im Netzwerk ist kein WINS mehr vorhanden und so ...

Batch & Shell
Stern in FOR maskieren
Frage von dievonnebenanBatch & Shell2 Kommentare

Ich möchte eine FOR-Schleife nutzen, um eine Variable mit mehreren Semikolon-separierten Werten zu zerlegen. Manchmal kann ein Wert mit ...

Windows 10
RSAT for Windows 10
gelöst Frage von uLmiWindows 106 Kommentare

Hallo Zusammen, ich habe zuhause Windows 10 Pro installiert und RSAT for Windows 10 Technical Preview installiert. mir fehlt ...

Batch & Shell
FOR Schleife läuft nicht
gelöst Frage von sugramBatch & Shell4 Kommentare

Hallo Ich glaube ich sehe den Wald vor lauter Bäumen nicht. Aber ich bekomme die FOR Schleife nicht zum ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 14 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 18 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...