2009-05-24 18 views
3

Ich möchte eine Batch-Datei, die einen Benutzer in sich registrieren kann. so etwas wie:Batch-Datei, die nach Benutzername/Passwort + Registrierung fragt

@echo off 
echo Choose an option: 
echo  1:Register 
echo  2:Login 
Set option= 
set /p option=Your option: 
if %option%==1 goto reg 
if %option%==2 goto login 
... 
:reg 
--The registration script-- 
goto login 
... 
:login 
Set usr= 
set /p usr=Username: 
if %usr%== goto pass 
echo False username! 
@pause 
goto login 
... 
:pass 
Set passw= 
set /p passw=Password: 
if %passw%== goto success 
echo False password! 
@pause 
goto login 

So ... so ähnlich. 'if% passw% == "" und wenn% usr% == ""' === es sollte automatisch bei der Registrierung gemacht werden.

Es wird nett sein, wenn mehr als 1 Leute sich registrieren können.

+0

Was meinst du mit 'registrieren'? –

+0

, die ein Benutzer registrieren kann. wie auf stackoverflow. nur dass es einen Benutzer erstellt, der sich daran erinnert, um sich später anzumelden. –

Antwort

1

Hmmm. Das ist, was ich von etwas Hilfe herausgefunden:

@echo off 
title REGISTERANDLOGIN 
if exist programbase.dll goto login 
if not exist programbase.dll goto register 

:register 
title Register 
echo Register 
echo. 
echo Please fill in the blanks. 
echo. 
Set usrname= 
set /p usrname=Username: 
Set passw= 
set /p passw=Password: 
echo %usrname%>> programdata.dll 
echo %passw%>> programbase.dll 
goto login 

:login 
:begin 
set usr= 
set /p usr=Enter your username: 
if {%usr%}=={} goto :begin 
set authenticated= 
for /f "tokens=*" %%a in (programdata.dll) do (
    if {%%a}=={%usr%} set authenticated=true 
) 

if not defined authenticated (echo Invalid Username & goto :begin) 

:passwo 
set pass= 
set /p pass=Enter your password: 
if {%pass%}=={} goto :begin 
set authenticated= 
for /f "tokens=*" %%a in (programbase.dll) do (
    if {%%a}=={%pass%} set authenticated=true 
) 
if not defined authenticated (echo Invalid password & goto :begin) 

:loggedin 
cls 
echo Welcome. 
@pause 
exit /b 0 
+0

Der Aufruf einer .dll ändert nichts daran, dass Kennwörter im Klartext gespeichert werden. Dies ist gut, um etwas von Ihrer Hauskatze zu schützen, die sie versehentlich benutzt ... nichts anderes. –

+0

Nun, es ist nur, dass der Benutzer nicht wirklich eine Idee hat, dass dort der Benutzername und das Passwort gespeichert ist. Sie denken auch, dass es wirklich schlimm ist, wenn sie dort Dinge ändern. –

0

einige ernsthaft böse Streiche this web site gefunden, einschließlich:

ECHO Enter some input, and press Enter when ready . . . 
ECHO ←[13;0;64;13p 
COPY CON USRINPUT.TMP 
ECHO ←[13;13p 
CLS 
ECHO You typed: 
TYPE USRINPUT.TMP 

Welche ANSI Schlüssel Übersetzung verwendet Geben Sie in CTRL-Z zu ändern.

+0

ja ... großartig ... aber nicht was ich suche. –

+0

Das Abrufen einer Eingabezeichenfolge von einem Benutzer ist in einer Batch-Datei schwierig; Ich konnte mir nicht vorstellen, wie schwer ein Registrierungssystem aufgebaut werden würde. Oder wie leicht es gebrochen werden könnte; Schließlich kann jeder die Quelle einer Batch-Datei lesen. – Andomar

+0

Dies funktioniert nicht korrekt bei einer aktuellen Windows-Version. Zumindest nicht der Teil mit den ANSI-Escape-Sequenzen. – Joey

0

Ich konnte nicht ganz sagen, dass ich Ihre Frage vollständig verstanden habe, aber wenn Sie Zweifel an etwas im Zusammenhang mit Batch-Scripting haben, kann ich Ihnen empfehlen, diese Website zu besuchen this website.

Das Tutorial ist wirklich erschöpfend, einfach zu folgen und hat mir schon einige Male geholfen.

+0

es ist das gleiche wie für jede Website wie Google Gmail, Youtube registrieren ... aber als in einem Batch. –

1

für einen leeren String zu testen, in Anführungszeichen setzen müssen beide Seiten:

if "%usr%"=="" 

in eine Textdatei, verwenden Sie anhängen >>

echo %usr%:%pass% >> passwd.txt 

Um eine Schleife über den Inhalt einer Datei, Verwenden Sie für/f:

for /f "delims=: tokens=1,2" %%x in (passwd.txt) do (
    if "%%x"=="%usr%" then (
    set usrfound=true 
) 
) 
if "%usrfound%"=="" then (
    rem Register user 
) else (
    rem Check password and succeed/fail 
) 

Während des Testens oder Debuggens sicherstellen, dass Echo eingeschaltet ist. Wenn Sie eine Variable innerhalb einer for-Schleife oder andere mehrzeilige Anweisung setzen und testen wollen, setzen Sie diese in der Nähe der Anfang der Datei:

setlocal enabledelayedexpansion 

und jederzeit Sie brauchen, um eine Variable zu lesen, die innerhalb des Blocks geändert haben , nutze! var! anstelle von% var%.

+0

Natürlich muss der Benutzername und die Passwortdatei für die Person lesbar sein, die die Batchdatei ausführt. Es wäre also einfach, die Datei zu öffnen und das Passwort eines anderen zu erhalten. Sie könnten die Kennwörter hashen, obwohl dies eine ausführbare Datei von Drittanbietern erfordern würde. Ich glaube nicht, dass jemand eine SHA-Hash-Bibliothek in einer Batch-Datei schreiben könnte (oder sollte). – Kibbee

+0

Guter Punkt, aber es ist auch trivial, ein Passwort durch ein Drittanbieter-Tool zu übergeben. Zum Beispiel: für/f "delims =" %% x in ('md5sum% pass%') setze hashpass = %% x Ha, ich habe nur 'trivial' verwendet, um etwas zu beschreiben, das in einer Batchdatei gemacht wurde. Einen SHA-Hash zu schreiben ist der nächste auf meiner Liste, nur um zu sehen, ob es möglich ist (und dann werde ich für eine Zugabe meine Leiste-Region schleifen). – JimG

0
@echo off 

if exist "%userprofile%\documents\Login\Accounts" goto start0 

if not exist "%userprofile%\documents\Login\Accounts" md "%userprofile%\documents\Login\Accounts" 

:start0 

title Login 

color 02 

cls 

echo --------------------------------- 

echo    Login. 

echo --------------------------------- 

echo. 

echo. 

echo. 

echo 1.Create New Username. 

echo 2.Log in. 

echo. 

echo. 

echo. 

set /p A=Choice: 

IF '%A%' == '1' GOTO NewUser0 

IF '%A%' == '2' GOTO Login0 

IF NOT '%A%' == '1' GOTO start0 

:NewUser0 

cls 

color 02 

cd "%userprofile%\documents\Login\Accounts" 

set /p newuser=New Username: 

IF EXIST %newuser%.bat GOTO inval0 

set /p newpass=New Password: 

echo set realusername=%newuser% >> %newuser%.bat 

echo set password=%newpass% >> %newuser%.bat 

IF EXIST %newuser%.bat GOTO NewUser1 

IF NOT EXIST %newuser%.bat GOTO NewUser2 

:NewUser1 

echo Your Account Has Been Created Successfully. Press An Key To Continue. 

pause >nul 

GOTO start0 

:NewUser2 

cls 

color 0c 

del /f /q %newuser%.bat 

echo ERROR!Account Could Not Be Created For Unknown Reasons.Press Any Key To Continue 

pause >nul 

GOTO start0 

:Login0 

cls 

color 02 

cd "%userprofile%\documents\Login\Accounts" 

echo Login. 

echo. 

echo. 

echo. 

echo. 

set /p loguser=Username: 

IF NOT EXIST %loguser%.bat GOTO inval1 

:Login1 

set /p logpass=Password: 

call %loguser%.bat 

if %logpass% == %password% goto success0 

goto invalid2 

:inval0 

cls 

color 0c 

echo Desired Username Already Exists. Press Any Key To Continue. 

pause >nul 

GOTO start0 

:inval1 

cls 

color 0c 

echo Desired Username Does NOT Exist. Press Any Key To Continue. 

pause >nul 

GOTO start0 

:invalid2 

cls 

color 0c 

echo Invalid Password. Press Any Key To Continue. 

pause >nul 

cls 

color 02 

echo Login. 

echo. 

echo. 

echo. 

echo. 

echo Username:%loguser% 

GOTO Login1 

:Success0 

cls 

color 02 

title End Of My Script 

echo You Successfully Logged In. 

echo Here Is Where You Continue The Script. 

ping localhost -n 3 >nul 

echo. 

echo. 

echo. 

echo Press Any Key To Exit. 

pause >nul 

exit 
0

Schauen Sie sich dieses unglaublich einfache Chat-Programm:

@echo off 
cls 
echo @prompt set date=$d$_set time=$t$h$h$h > {a}.bat 
%comspec% /e:2048 /c {a}.bat > {b}.bat 
for %%v in ({b}.bat del) do call %%v {?}.bat 
:LoGINSCR 
ECHO Euronet MessageBoard 
ECHO v1.0 [BETA] 
goto LOGIN 
:LOGIN 
ECHO. 
set/p user=Login As: 
if %user%==Eugene goto PASSWORD 
if %user%==Toxic goto PASSWORD 
if %user%==Plague goto PASSWORD 
if %user%==Jason goto PASSWORD 
goto LOGIN 
:PASSWORD 
set/p pass=Password: 
if %pass%==$euronet$ goto SYSTEM 
goto LOGIN 
:SYSTEM 
ECHO Welcome to Euronet MessageBoard, %user%. 
goto INPUTMAIN 
:INPUTMAIN 
ECHO. 
set/p main=%user%/chat: 
if %main%==help goto HELP 
if %main%==join goto JOIN 
if %main%==quit goto EXIT 
if %main%==ic goto IC 
goto ERROR 
:IC 
ping google.com 
PAUSE 
ping wikipedia.org 
PAUSE 
ping facebook.com 
PAUSE 
ipconfig 
PAUSE 
goto INPUTMAIN 
:ERROR 
ECHO [ERROR] No command found ("%main%") 
goto INPUTMAIN 
:HELP 
ECHO Type help to show the help page. 
ECHO Type join to join board 
ECHO Type quit to exit MessageBoard 
ECHO Type ic for internet check 
ECHO After you joined the board, you can update 
ECHO your screen by pressing "Shift & 6". 
goto INPUTMAIN 

:JOIN 
ECHO. 
set/p mesgc=Enter your message: 
ECHO %user% [%time%] - %mesgc% >> messg1 
goto TRAFFIC 
:TRAFFIC 
cls 
TYPE messg1 
goto JOIN 
:CLS 
cls 
goto TRAFFIC 
:EXIT 
exit 

Es verwendet eine Datei, aber mehrere Benutzer könnte die Fledermaus-Datei ausführen und verbinden zu der Datei. Es funktioniert, indem die TYPE wiederholt und die Befehle/p wiederholt werden. Obwohl die Chat-Liste nicht selbst aktualisiert werden konnte, können Sie sie aktualisieren, indem Sie die Tasten Umschalt und 6 drücken und die Eingabetaste drücken.

1

Ich frage mich, ob dies funktionieren wird:

@ echo off 
goto username 
:username 
echo Hello, please log in with your user ID or type "reg" to register. 
echo Username: 
set /p user 
if %user%== username(s)here goto password 
if %user%==reg goto register 
if not defined user (
cls 
echo Bad username! 
pause 
exit 
) 

Dann den Rest des Programms. Ich würde das versuchen, und wenn es nicht funktioniert, erzähl mir davon!

1

Sie können dieses versuchen. . . Ich schrieb eine Batch-Datei, die ein Login-Modul & Anmeldung hat. Es erstellt eine Datei, in der erstellte Konten gespeichert werden. Beim Einloggen sind spezielle Funktionen wie "Color Changer" und "TicTacToe" enthalten.Das TicTacToe ist NICHT meins, ich habe es von www.screwthelotofyou.webs.com/files/. Diese Datei und der Farbwechsler gehörten mir. "Reproduzieren, bearbeiten und verteilen Sie alles, was Sie wollen. Als ob ich Sie aufhalten könnte." - ScrewTheLotofYou

Ich kann den Code hier nicht einfügen, es ist zu lang. . . Link: http://www.mediafire.com/?kwzzvk24nuze8fq Ich hoffe, es hat funktioniert. : D ~ meilviruz99

0

Warum nicht einfach die Eingabe mit einer Benutzerdatei vergleichen? Erstellen Sie eine Datei für jeden Benutzer und maybie erhalten ein Verschlüsselungs- und Entschlüsselungsprogramm automatisch für maximale Sicherheit ausgeführt werden. Batch ist eine sehr einfache Sprache. Mach einfach eine Weile damit rum.

0

Ich bin anständig stolz darauf :) Dies hat zwei verschiedene Dateien: login.bat, die die Anmeldung und login2.bat behandelt, die die Registrierung behandelt. login.bat:

@echo off 
choice /c:RL /m "Choose an option: Register (R) or Login (L).: 
if errorlevel 2 goto login 
if errorlevel 1 goto register 
:register 
start /wait C:\[path]\login2.bat 
cls 
goto login 
:in 
cls 
echo Welcome %u% 
echo. 
echo Bla Bla Bla or start "a program" 
pause 
exit 
:login 
set /p u=Username 
set /p p=Password 

und login2.bat:

@echo off 
:a 
set /p a="Choose a Username" 
set /p b="Choose a Password" 
echo. 
choice /m "Are you sure you would like your Username to be %a% and your Password to be %b%?" 
if errorlevel 2 goto a 
set q="if %%u%% equ %a% if %%p%% equ %b% goto in" 
for /f "tokens=*" %%I in (%q%) do set m=%%I 
echo %m% >>C:\[path]\login.bat 
exit 

Der Grund, warum: in, die das Etikett behandelt, was passiert, nachdem Sie sich erfolgreich anmelden in der Mitte sein muss, statt auf die Das Ende von login.bat ist so, dass die Benutzername/Passwort-Kombinationen an das: login-Label angehängt werden können. Natürlich könnten Sie andere Verzierungen hinzufügen und den Namen der Dateien ändern, aber das ist mein Grunddesign. Ich mag, wie kurz und verständlich diese sind. Und sie arbeiten zu 100% charmant. Hoffe, das hilft!

0

Ich stelle nicht den vollen Quellcode zur Verfügung, weil Sie alle wahrscheinlich wissen, wie man das macht.

Eine wirklich einfache Möglichkeit zu tun, was Sie fragen, ist nur eine Registrierung und eine Login-Seite, die Dateien erkennen. Machen Sie einfach ein paar Verzeichnisse wie UserSaves oder PassSaves zum Beispiel. Dann haben Sie das System nur feststellen, ob die Dateien bei der Anmeldung vorhanden sind:

:page 
set /p usr=Username: 
if exist mydir\LoginProgram\saves\userSaves\%usr% (
echo Valid Username. 
pause 
goto passentry 
cls 
) else (
echo Invalid Username. 
pause 
goto page 
cls 
) 
:passentry 
cls 
set /p pass=Password: 
if exist mydir\LoginProgram\saves\passSaves\%pass% (
echo Valid Password. Welcome! 
pause 
goto whateverpage 
cls 
) else (
echo Invalid Password. Login failed. 
pause 
goto page 
cls 
) 

Super einfacher Code. Machen Sie dasselbe für die Registrierung.

Verwandte Themen