中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 【求助】关于密码 上一主题 | 下一主题
c442409110
初级用户





积分 20
发帖 9
注册 2008-5-30
状态 离线
『楼 主』:  【求助】关于密码

刚接触批处,想用errorlevel实现判断密码正确还是错误,其他没什么问题,运行后不输入直接按回车会输出密码正确.请问哪里错了?谢谢
@echo off
:1
echo 请输入密码
set /p password=
if "%password%"=="123" abc 2>nul
if errorlevel 1 echo 密码正确&goto 2
if errorlevel 0 echo 密码错误&goto 1
:2
pause >nul

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




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 2 楼』:  

你都if %password%==123 了。。还用if errorlevel 干什么?

if %password%==123 (echo 密码正确) else echo 密码错误
pause



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-5-30 14:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  我来讲两句:

&&errorlevel是运行命令时cmd所返回的值,一般都是以0代表为真(执行成功),以1代
表为非(执行不成功),有的还有以2代表出现名错误。下面举个实例说明一下:
@echo off
echo abcd>a.txt&echo 1234>b.txt
echo find "abcd" a.txt
find "abcd" a.txt>nul
echo errorlevel:%errorlevel%
echo.
echo find "abcd" b.txt
find "abcd" b.txt>nul
echo errorlevel:%errorlevel%
pause>nul&del /q a.txt b.txt
[ Last edited by zw19750516 on 2008-5-30 at 04:46 PM ]



批处理之家新域名:www.bathome.net
2008-5-30 16:41
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by c442409110 at 2008-5-30 14:32:
刚接触批处,想用errorlevel实现判断密码正确还是错误,其他没什么问题,运行后不输入直接按回车会输出密码正确.请问哪里错了?谢谢
@echo off
:1
...

如楼主真的要用errorlevel来判断,可以这样写(实际上不提倡这样):
@echo off
set /p password=请输入密码:
echo %password%|findstr "1234">nul
if errorlevel 1 (echo 密码错误!) else (echo 密码正确!)
pause>nul




批处理之家新域名:www.bathome.net
2008-5-30 16:54
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
wangzenggogo
初级用户





积分 69
发帖 34
注册 2008-5-29
状态 离线
『第 5 楼』:  

这个还可一

2008-5-30 20:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
c442409110
初级用户





积分 20
发帖 9
注册 2008-5-30
状态 离线
『第 6 楼』:  

zw19750516
谢谢你的回答
但是如果输入密码是12345,123456,照样显示密码正确

2008-5-30 22:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 7 楼』:  

2 楼已经说的很清楚了,你还要怎样?
若是非要用errorlevel来解决的话,简直是费力不讨好。
如下就可以了,完全匹配。
@echo off
set /p password=请输入密码:
echo %password%|findstr /ix "1234">nul
if errorlevel 1 (echo 密码错误!) else (echo 密码正确!)
pause>nul




致精致简!
2008-5-30 22:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
driver1998
高级用户




积分 740
发帖 373
注册 2008-5-23
来自 中国,广东
状态 离线
『第 8 楼』:  

这是我改过的:

@echo off
cls
:1
set /p key=请输入密码:
if /i '%key%'=='1234' GOTO ok
goto nok

:ok
echo 密码正确!
goto 2

:nok
echo 密码不正确!
goto 1

2008-6-22 17:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 9 楼』:  

可是密码很容易...

比如4楼的代码.
密码处写
" off&call type "%~0" &set   "
然后......

2008-6-22 18:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: