Board logo

标题: [其他] 批处理如何设置密码 [打印本页]

作者: fq12003    时间: 2007-12-27 10:00     标题: 批处理如何设置密码

@echo off
set /p sn=请输入随机号(六位数以内):
set /a password1=%sn% * 999 + 888
set /p password2=请输入你的密码:
if "%password1%"=="%password2%" echo %sn% >>pass.txt|(goto:1)else goto:2

根据pass.txt与sn判断,如果pass.txt里存在sn内容,则执行c,否则执行d,请问这个怎么p
作者: novaa    时间: 2007-12-27 13:05

应该可以直接判断是否存在 pass.txt来吧。且楼主这个>>pass.txt会不断往里面加入新的密码。
不知道是不是楼主想要的结果?
作者: ieutk    时间: 2007-12-27 13:37

  1. @echo off
  2. :main
  3. cls&echo.
  4. set /p sn=请输入随机号(六位数以内):
  5. if not defined sn goto main
  6. echo %sn%|findstr "^1[0-9]*$">nul||goto main
  7. set sn=%sn:~0,6%
  8. set /a password1=%sn%*999+888
  9. set /p password2=请输入你的密码:
  10. if not exist pass.txt (
  11. echo %sn%>>pass.txt
  12. goto :eof
  13.     ) else (
  14. for /f "delims=" %%a in (pass.txt) do @if "%sn%"=="%%a" (goto c) else goto d
  15.     )
  16. ......
  17. :c
  18. echo  这里是标签c的内容
  19. ......
  20. pause&goto :eof
  21. :d
  22. echo  这里是标签d的内容
  23. ......
  24. pause&goto :eof
复制代码
是不是这样

[ 本帖最后由 ieutk 于 2007-12-27 14:17 编辑 ]
作者: fq12003    时间: 2007-12-27 17:25

关于批处理设置密码的问题@echo off
set /p sn=请输入随机号(六位数以内):
set /a password1=%sn% * 999 + 888
set /p password2=请输入你的密码:
if "%password1%"=="%password2%" echo %sn% >>pass.txt|(goto:1)else goto:2

根据pass.txt与sn判断,如果pass.txt里存在sn内容,则执行c,否则执行d,请问这个怎么p

我的本意是
输入的随机号码和密码能够满足如上的条件,则将输入成功的随机号码保存在pass.txt中,如果下次输入的随机号码和密码都正确,但是随机号码在pass.txt中已经存在,则返回密码登陆界面;根据pass.txt中判断随机号码是否存在,如果随机号码在pass中存在,则返回登陆截面,提示此号码已经存在,请重新输入,如果不存在但是密码正确则执行语句c,
如果输入的随机号码不满足条件,密码不正确,则执行d(显示pass.txt)中已经存在的号码,避免输入随机号重复,并给相应的提示
作者: fq12003    时间: 2007-12-27 17:27

只要执行不成功,都返回到登陆界面
作者: 随风    时间: 2007-12-27 20:01

标题模糊,主题更模糊,
     帮不了你............
什么情况下才是密码正确?
你的密码都是通过随机数算出来的,在随机数不一样的情况下,密码能一样吗?

先把问题描述清楚,不要用你的这个不成功的代码,反而会误导别人.
作者: novaa    时间: 2007-12-27 21:31

觉得也是!
藐视的不清楚。
不知道怎么下手。。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2