首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >要求用户名/密码+注册的批处理文件

要求用户名/密码+注册的批处理文件
EN

Stack Overflow用户
提问于 2009-05-24 11:42:14
回答 11查看 41.5K关注 0票数 3

我想要一个批处理文件,可以注册到自己的用户。类似于:

代码语言:javascript
复制
@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%== ""‘===应该在注册时自动生成。

如果能有超过1000人注册就好了。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-05-27 16:45:05

嗯。这是我通过一些帮助发现的:

代码语言:javascript
复制
@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
EN

Stack Overflow用户

发布于 2009-05-24 13:19:43

要测试空字符串,请用引号将两边括起来:

代码语言:javascript
复制
if "%usr%"==""

要追加到文本文件,请使用>>

代码语言:javascript
复制
echo %usr%:%pass% >> passwd.txt

要循环遍历文件的内容,请使用for /f:

代码语言:javascript
复制
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
)

在测试或调试期间,请确保echo处于打开状态。如果要在for循环或其他多行语句中设置和测试变量,请将以下代码放在文件开头附近:

代码语言:javascript
复制
setlocal enabledelayedexpansion

任何时候你需要读取一个在代码块中可能已经改变的变量,使用!var!而不是%var%。

票数 1
EN

Stack Overflow用户

发布于 2012-10-11 13:37:37

我想知道这是否可行:

代码语言:javascript
复制
 @ 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/903607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档