中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-26 21:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]这代码怎么改:批处理密码验证程序 查看 957 回复 7
楼 主 [已结]这代码怎么改:批处理密码验证程序 发表于 2008-12-12 19:14 ·  中国 重庆 电信
初级用户
★★
积分 92
发帖 82
注册 2007-11-13 23:35
18年会员
UID 102602
性别 男
状态 离线
@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
操作:在帖子标题中增加搜索关键字
说明:原标题"大家帮我看下这代码怎么改"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-12-13 at 22:56 ]
2 发表于 2008-12-12 21:16 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@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
3 发表于 2008-12-13 01:31 ·  中国 重庆 电信
初级用户
★★
积分 92
发帖 82
注册 2007-11-13 23:35
18年会员
UID 102602
性别 男
状态 离线
能根据以上的思路写出一个能设置密码,更改密码的代码吗?
4 发表于 2008-12-13 01:46 ·  中国 广东 广州 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
将:
if "%password%"=="%passwords%" goto ok
改为:
if "%password%"=="%passwords%" goto set
5 发表于 2008-12-13 02:32 ·  中国 重庆 电信
初级用户
★★
积分 92
发帖 82
注册 2007-11-13 23:35
18年会员
UID 102602
性别 男
状态 离线

@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 处于关闭状态。
到底是哪里出问题了
6 发表于 2008-12-13 02:35 ·  中国 重庆 电信
初级用户
★★
积分 92
发帖 82
注册 2007-11-13 23:35
18年会员
UID 102602
性别 男
状态 离线

: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


这是修改密码的代码,大家看下,这样可以吗
7 发表于 2008-12-13 14:31 ·  中国 四川 泸州 联通
高级用户
★★★
积分 609
发帖 374
注册 2006-08-02 22:38
19年会员
UID 59720
状态 离线
@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 ]
8 发表于 2008-12-13 21:53 ·  中国 重庆 电信
初级用户
★★
积分 92
发帖 82
注册 2007-11-13 23:35
18年会员
UID 102602
性别 男
状态 离线
谢谢ZJHJ
因为我是想做的效果是,如果M.rqm文件不存在,那提示用户设置密码,如果存在那要通过M.Rqm文件的内容来验证密码,问题我已经解决了,谢谢
论坛跳转: