M4rchewa utworzono 6 czerwca 2014 utworzono 6 czerwca 2014 Witam mam problem z logowaniem, jestem początkujący w batche i chciałbym zrobić coś na zasadzie rejestracji do pliku następnie odczytania z pliku loginu/hasła i po wpisaniu loginu/hasła dokonania sprawdzenia jeżeli hasło się zgadza pójść do następnego (goto) a jeżeli hasło się nie zgadza wrócić do startu napisałem taki kodzik Kod: @echo off color 0f title Matthew v1 is working :start echo ------------------------------------------------- echo Program Matthewa echo ------------------------------------------------- echo 1. rejestracja echo 2. logowanie echo 3. pomoc echo 4. o autorze set /p x="twoj wybor: " if .%x%.==.1. goto rejestracja if .%x%.==.2. goto login if .%x%.==.3. goto pomoc if .%x%.==.4. goto about :rejestracja cls set/p "uname=wpisz login : " set/p "upass=wpisz haslo : " cls goto rejestracja2 :rejestracja2 echo %uname%>>D:\uname.txt echo %upass%>>D:\upass.txt attrib D:\uname.txt +H attrib D:\upass.txt +H cls goto login :login set/p "login=wpisz login : " if %login%==D:\uname.txt goto haslo if not %login%==D:\uname.txt goto start pause :haslo if %haslo%==<D:\upass.txt goto nowy if exist %haslo%==<D:\upass.txt goto start :nowy pause > nul o ile rejestracja działa prawidłowo o tyle logowanie już nie mógłby ktoś napisać to w poprawnej formie? z góry dziękuję.
MasterYoghourt komentarz 15 września 2014 komentarz 15 września 2014 Zamiast porównywać zmienną ze ścieżką do pliku: if %login%==D:\uname.txt spróbuj pobrać dane z pliku uname.txt do kolejnej zmiennej i wtedy porównać %login%==%login2%. Bo wydaje mi się, że zmienna zawsze będzie nie równa ścieżce bo interpreter porównuje zmienną z łańcuchem znaków a nie z zawartością pliku.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.