Board logo

标题: [已结]这代码怎么改:批处理密码验证程序 [打印本页]

作者: provem     时间: 2008-12-12 19:14    标题: [已结]这代码怎么改:批处理密码验证程序

@echo off 
if not exist bb.txt
for /f "delims=" %%i in (bb.txt) do set passwords=%%i
:begin
cls&set /p password=  请输入密码:
if "%password%"=="%passwords%" goto ok
cls&echo   密码错误&ping /n 2 127.1>nul&goto begin
:set
set select=2
cls&set /p select=  是否更改密码(默认回车为不更改):(1. 更改 2.不更改)
if %select% equ 1 goto change
if %select% equ 2 goto ok
if %select% neq 1 if %select% neq 2 goto wrong
:change
set /a n=%random%%%38,m+=1
call,set pwd=%pwd%%%code:~%n%,1%%
if %m% lss 16 goto change
echo :: %pwd%>>%~nx0
cls&echo   请保管好你的新密码:%pwd%&pause&goto :eof

:wrong
cls&echo   输入无效,请正确选择输入!&ping /n 2 127.1>nul&goto set
:ok
cls&echo   密码正确!&pause&goto :eof
这是别人写的代码,我的想法是 如果BB.txt文件不存在就提示(如果存在就根据bb.txt就执行密码验证程序) 第一次使用请设置密码: 然后保存到BB.txt文件 下次重新运行程序时 ───────────────── 版务记录 ───────────────── 执行:HAT 操作:[2008-12-12]在帖子标题中增加搜索关键字 说明:原标题"大家帮我看下这代码怎么改"不利于论坛搜索 处罚:扣除2点积分 提示:建议阅读以下帖子 {1415}提问的智慧 {7326}论坛新手必读,所有人的基本行为准则 {22703}请不要做浮躁的人 {32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧 {32825}本版严厉整顿烂帖 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-12-13 at 22:56 ]

作者: tireless     时间: 2008-12-12 21:16
@echo off if exist bb.txt goto next set /p password=第一次使用请设置密码: echo.%password%>bb.txt :next for /f "delims=" %%i in (bb.txt) do set passwords=%%i :begin cls&set /p password= 请输入密码: ...
:set 到 :wrong 这段有机会执行?

作者: provem     时间: 2008-12-13 01:31
能根据以上的思路写出一个能设置密码,更改密码的代码吗?

作者: radem     时间: 2008-12-13 01:46
将: if "%password%"=="%passwords%" goto ok 改为: if "%password%"=="%passwords%" goto set

作者: provem     时间: 2008-12-13 02:32
@echo off

if exist %windir%\bb.txt goto check_pass
set /p password=请设置密码:&echo %password%>%windir%\bb.txt&goto opration_ver
:check_pass 
for /f "delims=" %%i in (%windir%\bb.txt) do set passwords=%%i
cls&set /p password=请输入密码:
if "%password%"=="%passwords%" goto opration_ver
cls&echo   密码错误&ping /n 2 127.1>nul&goto check_pass
大家帮我看下,我以上的代码,设置了密码到bb.txt文件的内容是:ECHO 处于关闭状态。 到底是哪里出问题了

作者: provem     时间: 2008-12-13 02:35
:set_pass
cls&set /p New_pass=请输入新密码:
cls&set /p New_pass1=请再输入新密码:
if %New_pass% equ %New_pass1% echo %New_pass%>bb.txt&echo.设置成功&pause&goto ok
echo.两次输入的密码不一致,请重新设置&pause&goto set_pass
:ok
cls&echo   密码正确!&pause&goto :eof
这是修改密码的代码,大家看下,这样可以吗

作者: ZJHJ     时间: 2008-12-13 14:31
@echo off
if exist M.RQM goto bn
rem llts in 0070303schj by qq251485609
@echo 12345678>M.RQM
:bn
@cls
@echo off
@echo.
@echo. 
@echo.
@echo                 为了用户的设置安全,本程序要管理员才能进入操作! 
@echo.
@echo.
@echo                                输入 T 退出
@echo.
@echo          -------         *         --------         *         --------
@echo.
@echo     初始密码: 12345678
@echo.
SET /P SY=     请输入管理员密码:
FOR /F %%I IN (M.RQM) DO SET syq=%%I
IF "%SY%" == "%syq%" GOTO kyjr
IF "%SY%" == "CK" GOTO ckmm
IF "%SY%" == "T" GOTO :eof
@cls
@echo. 
@echo.
@echo.
@echo               对不起,(密码可能已更改)你不是管理员不能进入操作使用!
pause>nul
@goto  bn
:kyjr
@cls
@echo.
SET /P SYg=   密码正确。按任意键进入程序(如果需要修改密码,请输入XGMM):
IF "%SYg%" == "XGMM" GOTO xg
IF not "%SYg%" == "XGMM" goto  k
:xg  
@cls
SET /P xmm=      请输入新密码:
@cls
SET /P cxmm=    请重新再输入一次:

IF "%cxmm%" == "%xmm%" GOTO gng
@echo 密码不一致!
pause
goto xg
:gng
@echo %xmm%>M.RQM
@echo   密码更改成功! 请你牢记此密码%xmm%
pause>nul
goto bn
:ckmm
@cls
FOR /F %%I IN (M.RQM) DO SET syq=%%I
@echo %syq%
pause>nul
goto bn
:k
@cls
@echo  进入使用程序
pause>nul
[ Last edited by ZJHJ on 2008-12-13 at 21:31 ]

作者: provem     时间: 2008-12-13 21:53
谢谢ZJHJ 因为我是想做的效果是,如果M.rqm文件不存在,那提示用户设置密码,如果存在那要通过M.Rqm文件的内容来验证密码,问题我已经解决了,谢谢