中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 19:18
楼 主 【求助】关于密码 发表于 2008-05-30 14:32 ·  中国 广东 广州 荔湾区 电信
初级用户
积分 20
发帖 9
注册 2008-05-30 01:41
UID 120050
性别 男
状态 离线
刚接触批处,想用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
2 发表于 2008-05-30 14:39 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
UID 115804
性别 男
状态 离线
你都if %password%==123 了。。还用if errorlevel 干什么?

if %password%==123 (echo 密码正确) else echo 密码错误
pause
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
3 我来讲两句: 发表于 2008-05-30 16:41 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
&&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
4 发表于 2008-05-30 16:54 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
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
5 发表于 2008-05-30 20:40 ·  中国 陕西 西安 电信
初级用户
积分 69
发帖 34
注册 2008-05-29 13:39
UID 120000
性别 男
状态 离线
这个还可一
6 发表于 2008-05-30 22:22 ·  中国 广东 广州 荔湾区 电信
初级用户
积分 20
发帖 9
注册 2008-05-30 01:41
UID 120050
性别 男
状态 离线
zw19750516
谢谢你的回答
但是如果输入密码是12345,123456,照样显示密码正确
7 发表于 2008-05-30 22:29 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
2 楼已经说的很清楚了,你还要怎样?
若是非要用errorlevel来解决的话,简直是费力不讨好。
如下就可以了,完全匹配。

@echo off
set /p password=请输入密码:
echo %password%|findstr /ix "1234">nul
if errorlevel 1 (echo 密码错误!) else (echo 密码正确!)
pause>nul
致精致简!
8 发表于 2008-06-22 17:20 ·  中国 广东 电信
高级用户
★★★
积分 740
发帖 373
注册 2008-05-23 14:40
UID 119498
性别 男
来自 中国,广东
状态 离线
这是我改过的:

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

:ok
echo 密码正确!
goto 2

:nok
echo 密码不正确!
goto 1
9 发表于 2008-06-22 18:27 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
UID 87277
性别 男
来自 cmd.exe
状态 离线
可是密码很容易...

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