我想要一个可以将用户注册到自身的批处理文件。 像这样的东西:
@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%== ""and if %usr%== ""' === 它应该在注册时自动生成。
如果能超过1人注册就好了。
最佳答案
要测试空字符串,请在两边加上引号:
if "%usr%"==""
要附加到文本文件,请使用 >>
echo %usr%:%pass% >> passwd.txt
要遍历文件的内容,使用 for/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
任何时候你需要读取一个可能在 block 内改变的变量,使用 !var!而不是 %var%。
关于authentication - 要求用户名/密码+注册的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903607/