Diskuze: batch skript

Ostatní jazyky Ostatní programovací jazyky batch skript

Avatar
x10102.ot
Člen
Avatar
x10102.ot:

nevite proc nefunguje

@echo off
if EXISTS user.dat goto login
:reg
set /p u=jmeno:
set /p p=heslo:
set /p n=prezdivka:
echo %u% >> user.dat
echo %p% >> password.dat
echo %n% >> nickname.dat
exit
:login
set u3 < user.dat
set p3 < password.dat
set n3 < nick.dat
set /p u2=jmeno:
set /p p2=heslo:
if %u2%==%u3% goto pass
exit
: pass
if %p2%==%p3% goto ahoj
exit
:ahoj
vitej %n3%
pause

Editováno 7.2.2015 12:42
 
Odpovědět 7.2.2015 12:41
Avatar
αcнερ™
Redaktor
Avatar
Nahoru Odpovědět  +2 10.2.2015 10:01
. . .
Avatar
Jakub Horák
Člen
Avatar
 
Nahoru Odpovědět 24.2.2015 19:51
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na x10102.ot
Daniel Vítek:

rekl bych ze u tech setu by melo byt = < soubor.dat

 
Nahoru Odpovědět 24.2.2015 20:26
Avatar
x10102.ot
Člen
Avatar
Avatar
αcнερ™
Redaktor
Avatar
Odpovídá na x10102.ot
αcнερ™:

Klikni na 4té tlačidlo zľava :)
(http://www.imagehosting.cz/?…)

Editováno 26.2.2015 18:30
Nahoru Odpovědět 26.2.2015 18:29
. . .
Avatar
registrace.baryk:

To je zajímavé mi taky nešlo něco podobného... :

@echo off
title REGISTRACE
echo Registrace:
set /p USER=Zadejte sve uzivatelske jmeno:
echo %USER% > USER.txt
set /p PWD=Zadejte sve heslo:
echo %PWD% > PWD.txt
start PRIHLASENI.bat & exit

a to PRIHLASENI.bat

@echo off
color 0A
title PRIHLASENI
:LOGIN
echo Prihlaseni:
set /p USER= < USER.txt
set /p PWD= < PWD.txt
set /p USER2=Zadejte sve uzivatelske jmeno:
if %USER2%==%USER% goto SPRAVNE JMENO
cls
echo Spatne jmeno
pause
cls
goto LOGIN

:SPRAVNE JMENO
cls
set /p PWD2=Zadejte sve heslo:
if %PWD2%==%PWD% goto SPRAVNE HESLO
echo Spatne heslo

:SPRAVNE HESLO
cls
echo Uzivatel %USER2% byl uspesne prihlasen !
pause
cls
pause
exit
Editováno 26.2.2015 20:41
 
Nahoru Odpovědět 26.2.2015 20:39
Avatar
Jakub Horák
Člen
Avatar
Odpovídá na registrace.baryk
Jakub Horák:

Když zadám špatné heslo, tak to napíše zprávu jakoby bylo správné, protože v návěští :SPRAVNE JMENO, když to neprojde tím ifem, tak to sice vypíše "Spatne heslo", ale jde to dál až do návěští :SPRAVNE HESLO, kde se to nezarazí a hned smaže konzolu a vypíše "Uzivatel %USER2% byl uspesne prihlasen !", takže je to jako kdybych zadal správné heslo. Když jsem si to upravil, tak mně to jelo.

Mohlo by to být třeba takto:

@echo off
 color 0A
 title PRIHLASENI
 :LOGIN
 echo Prihlaseni:
 set /p USER= < USER.txt
 set /p PWD= < PWD.txt
 set /p USER2=Zadejte sve uzivatelske jmeno:
 if %USER2%==%USER% goto SPRAVNE JMENO
 cls
 echo Spatne jmeno
 pause
 cls
 goto LOGIN

 :SPRAVNE JMENO
 cls
 set /p PWD2=Zadejte sve heslo:
 if %PWD2%==%PWD% goto SPRAVNE HESLO
 echo Spatne heslo
 pause
 exit

 :SPRAVNE HESLO
 cls
 echo Uzivatel %USER2% byl uspesne prihlasen !
 pause
 cls
 pause
 exit
 
Nahoru Odpovědět 1.3.2015 13:01
Avatar
Jakub Horák
Člen
Avatar
Odpovídá na x10102.ot
Jakub Horák:
  1. přezdívku ukládáš do souboru nickname.dat a čteš ze souboru nick.dat
  2. má tam být:
if EXIST

místo:

if EXISTS

3. v tom :login má být:

set /p u3= < user.dat
set /p p3= < password.dat
set /p n3= < nickname.dat

místo:

set u3 < user.dat
set p3 < password.dat
set n3 < nick.dat

4. v :ahoj má být:

echo vitej...

místo:

vitej...

opravený kód:

@echo off
if EXIST user.dat goto login
:reg
set /p u=jmeno:
set /p p=heslo:
set /p n=prezdivka:
echo %u% >> user.dat
echo %p% >> password.dat
echo %n% >> nickname.dat
exit
:login
set /p u3= < user.dat
set /p p3= < password.dat
set /p n3= < nickname.dat
set /p u2=jmeno:
set /p p2=heslo:
if %u2%==%u3% goto pass
exit
:pass
if %p2%==%p3% goto ahoj
exit
:ahoj
echo vitej %n3%
pause
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 1.3.2015 17:07
Avatar
Odpovídá na Jakub Horák
registrace.baryk:

Díky, toho jsem si nevšimnul

 
Nahoru Odpovědět 16.3.2015 22:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.