中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 11:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]关于IF的问题 查看 705 回复 5
楼 主 [已解决]关于IF的问题 发表于 2007-11-17 13:41 ·  中国 辽宁 沈阳 电信
新手上路
积分 19
发帖 10
注册 2007-11-04 11:33
18年会员
UID 101654
性别 男
状态 离线
@echo off
:start
echo 请输入用户名:
set /p user=
if "%user%"=="lijh" goto ps
goto userror

:ps
echo 请输入密码:
set /p password=
if "%password%"=="567" goto succ
goto pserror
:userror
if "%user%"=="quit" goto end
echo 无效用户名
goto start
:pserror
if "%password%"=="quit" goto end
echo 密码错误
goto ps
:succ
echo 欢迎您回来
:end
echo 您已退出
set user=
set password=


我的问题就是ELSE怎么用 上面if "%user%"=="lijh" goto ps goto userror 可不可以使用if else 来做 怎么做

[ Last edited by smilesail on 2007-11-17 at 03:09 PM ]
2 发表于 2007-11-17 14:41 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
既然是特定了用户名和密码干吗不用if not呢
@echo off
:start
set /p user= 请输入用户名:
if not "%user%"=="lijh" echo 无效用户名&ping/n 3 127.1>nul&exit/b
set /p password= 请输入密码:
if not "%password%"=="567" echo 密码错误&ping/n 3 127.1>nul&exit/b
echo 欢迎您回来
pause

else格式是这样的if "%XXX%"=="XXX" (echo yes) else (echo no)
第一高手 第二高手

3 发表于 2007-11-17 14:57 ·  中国 辽宁 沈阳 电信
新手上路
积分 19
发帖 10
注册 2007-11-04 11:33
18年会员
UID 101654
性别 男
状态 离线
谢谢 一下解决我两个问题 呵呵
那个 ping/n 3 127.1>null是做什么的
4 发表于 2007-11-17 14:58 ·  中国 北京 联通
中级用户
★★
替身
积分 269
发帖 130
注册 2007-03-23 21:41
19年会员
UID 82683
性别 女
状态 离线
如果分在不同行可以如下:

if /i "xxx" equ "xxx" (
command
) else (
command
)
5 发表于 2007-11-17 15:00 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
ping/n 3 127.1>nul 为echo提示信息延时3秒
第一高手 第二高手

6 发表于 2007-11-17 15:09 ·  中国 辽宁 沈阳 电信
新手上路
积分 19
发帖 10
注册 2007-11-04 11:33
18年会员
UID 101654
性别 男
状态 离线
哦 这样啊 知道了 我没有添加 /I参数
论坛跳转: