пакетный файл, который запрашивает имя пользователя / пароль + регистрация - PullRequest
3 голосов
/ 24 мая 2009

Мне нужен командный файл, который может зарегистрировать пользователя в себе. что-то вроде:

@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

Так ... что-то в этом роде. 'if% passw% == "" и if% usr% == ""' === он должен сделать это автоматически при регистрации.

Было бы хорошо, если бы зарегистрировалось более 1 человека.

Ответы [ 11 ]

1 голос
/ 18 октября 2012

Вы можете попробовать это. , , Я написал командный файл, который имеет модуль входа и регистрации. Он создает файл, в котором хранятся созданные учетные записи. При входе в систему включены специальные функции, такие как «Color Changer» и «TicTacToe». TicTacToe не мое, я получил его от www.screwthelotofyou.webs.com/files/. Этот файл и Color Changer были моими. «Воспроизводите, редактируйте и распространяйте все, что вы хотите. Как будто я могу остановить вас». - ScrewTheLotofYou

Я не могу вставить сюда код, он слишком длинный. , , Ссылка: http://www.mediafire.com/?kwzzvk24nuze8fq Надеюсь, это сработало. : D ~ meilviruz99

1 голос
/ 27 мая 2009

Хммм. Вот что я узнал по некоторой помощи:

@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
1 голос
/ 11 октября 2012

Интересно, будет ли это работать:

 @ 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
 )

Затем выполните остальную часть программы. Я бы попробовал это, и если это не сработает, расскажите мне об этом!

1 голос
/ 24 мая 2009

Чтобы проверить наличие пустой строки, заключите в кавычки обе стороны:

if "%usr%"==""

Чтобы добавить текстовый файл, используйте >>

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

Чтобы перебрать содержимое файла, используйте для / 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
)

Во время тестирования или отладки убедитесь, что эхо включено. Если вы хотите установить и проверить переменную внутри цикла for или другого многострочного оператора, поместите это в начале файла:

setlocal enabledelayedexpansion

и каждый раз, когда вам нужно прочитать переменную, которая могла измениться внутри блока, используйте! Var! вместо% var%.

0 голосов
/ 14 июня 2014

Я не предоставляю полный исходный код, потому что все вы, вероятно, знаете, как это сделать.

Действительно простой способ сделать то, что вы просите, - это просто зарегистрироваться и войти на страницу, которая обнаруживает файлы. Просто создайте пару каталогов, например, userSaves или passSaves. Затем система просто определяет, существуют ли файлы при входе в систему:

: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
)

Супер простой код. Просто сделайте то же самое для регистрации.

0 голосов
/ 31 мая 2013

Я прилично горжусь этим :) Это имеет два разных файла: login.bat, который обрабатывает login и login2.bat, который обрабатывает регистрацию. 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

и 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

Причина, по которой: in, метка, которая обрабатывает то, что происходит после успешного входа в систему, должна быть посередине, а не в конце login.bat, заключается в том, чтобы комбинации имени пользователя и пароля можно было добавить к метке: login , Очевидно, что вы можете добавить другие украшения и изменить имя файлов, но это мой основной дизайн. Мне нравится, насколько они короткие и понятные. И они работают как шарм 100% времени. Надеюсь, это поможет!

0 голосов
/ 06 марта 2013

Почему бы просто не сравнить входные данные с пользовательским файлом? создайте файл для каждого пользователя и, возможно, получите программу шифрования и дешифрования для автоматического запуска для максимальной безопасности. Пакет очень простой. просто возиться с этим некоторое время.

0 голосов
/ 01 июня 2012

Проверьте эту невероятно простую программу чата:

@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

Используется один файл, но несколько пользователей могут запустить файл bat и подключиться к файлу. Он работает путем многократного повторения команд TYPE и set / p. Хотя он не мог обновить список чатов сам по себе, вы можете обновить его, нажав Shift и 6 и нажав Enter.

0 голосов
/ 05 июня 2009
@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 голосов
/ 24 мая 2009

Не могу точно сказать, что полностью понимаю ваш вопрос, но если у вас есть сомнения по поводу чего-либо, связанного с пакетным скриптингом, я мог бы порекомендовать посетить этот сайт этот сайт

Учебное пособие действительно исчерпывающее, простое в использовании и помогло мне несколько раз прежде.

...