中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]这代码怎么改:批处理密码验证程序
作者:
标题: [已结]这代码怎么改:批处理密码验证程序 上一主题 | 下一主题
provem
初级用户





积分 92
发帖 82
注册 2007-11-13
状态 离线
『楼 主』:  [已结]这代码怎么改:批处理密码验证程序


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

2008-12-12 19:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 2 楼』:  



  Quote:
@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 这段有机会执行?

   此帖被 +1 点积分    点击查看详情   
评分人:【 provem 分数: +1  时间:2008-12-13 01:32


2008-12-12 21:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
provem
初级用户





积分 92
发帖 82
注册 2007-11-13
状态 离线
『第 3 楼』:  

能根据以上的思路写出一个能设置密码,更改密码的代码吗?

2008-12-13 01:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 4 楼』:  

将:
if "%password%"=="%passwords%" goto ok
改为:
if "%password%"=="%passwords%" goto set



2008-12-13 01:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
provem
初级用户





积分 92
发帖 82
注册 2007-11-13
状态 离线
『第 5 楼』:  


@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 处于关闭状态。
到底是哪里出问题了

2008-12-13 02:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
provem
初级用户





积分 92
发帖 82
注册 2007-11-13
状态 离线
『第 6 楼』:  


: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
这是修改密码的代码,大家看下,这样可以吗

2008-12-13 02:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ZJHJ
高级用户





积分 609
发帖 374
注册 2006-8-2
状态 离线
『第 7 楼』:  


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

2008-12-13 14:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
provem
初级用户





积分 92
发帖 82
注册 2007-11-13
状态 离线
『第 8 楼』:  

谢谢ZJHJ
因为我是想做的效果是,如果M.rqm文件不存在,那提示用户设置密码,如果存在那要通过M.Rqm文件的内容来验证密码,问题我已经解决了,谢谢

2008-12-13 21:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: