![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 14:54 |
共 48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教一个批处理 if 和 set命令 |
| 可打印版本 939 / 10 |
| 第1楼 yinyuan | 发表于 2007-11-23 11:02 |
| 初级用户 发帖 22 积分 50 | |
|
请教一个批处理 if 和 set命令 这几天想学习一下批处理的几个常用命令,在下面的批处理中有一条命令不太明白,请指导一下:
@Echo off COLOR 1F Title 选择操作 :Start CLS Echo. Echo 1. 设置E.F分区的PE文件为系统隐藏属性 Echo 2. xp 、hotmail 密码管理 Echo 0. 退出 Echo. Set Choice= Set /P Choice= 请选择要操作的序号 , 然后按回车: If %Choice%Choice==Choice Goto Start 这一句是不是多余的?发现去掉后没什么影响,这一句到底是什么意思? If Not '%Choice%'=='' SET Choice=%Choice:~0,1% If /I '%Choice%'=='1' GOTO 1 If /I '%Choice%'=='2' GOTO 2 If /I '%Choice%'=='0' EXIT Goto Start :1 Echo. ........................ [ Last edited by yinyuan on 2007-11-25 at 12:01 PM ] |
|
| 第2楼 upsco | 发表于 2007-11-23 11:16 |
| 初级用户 发帖 32 积分 67 | |
|
If %Choice%Choice==Choice Goto Start 这句是判断变量Choice的值是否为空,既判断用户是否有输入
|
|
| 第3楼 yinyuan | 发表于 2007-11-23 11:24 |
| 初级用户 发帖 22 积分 50 | |
Originally posted by upsco at 2007-11-23 11:16: 但去掉这一条,在没有输入的情况下按回车,结果是一样的。看不出有什么不同呀。 能不能解释一下,有这条命令和没有这条命令的具体区别? |
|
| 第4楼 fastslz | 发表于 2007-11-23 11:36 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
@Echo off
COLOR 1F Title 选择操作 :Start CLS Echo. Echo 1. 设置E.F分区的PE文件为系统隐藏属性 Echo 2. xp 、hotmail 密码管理 Echo 0. 退出 Echo. Set Choice= Set /P Choice= 请选择要操作的序号 , 然后按回车: If %Choice%Choice==Choice Goto Start 这一句是不是多余的?发现去掉后没什么影响,这一句到底是什么意思? If Not '%Choice%'=='' SET Choice=%Choice:~0,1% If /I '%Choice%'=='1' GOTO 1 If /I '%Choice%'=='2' GOTO 2 If /I '%Choice%'=='0' EXIT Goto Start 有了蓝色部分,红色部分可以说是多余的 |
|
| 第5楼 yinyuan | 发表于 2007-11-23 11:41 |
| 初级用户 发帖 22 积分 50 | |
|
多谢楼上二位老师,终于明白了
|
|
| 第6楼 yinyuan | 发表于 2007-11-23 11:53 |
| 初级用户 发帖 22 积分 50 | |
|
还有一点不明白,我在这个批处理里输入10 回车,就会执行序号1的内容,但我输的10在这个批处理里没有这个序号呀,怎么解决。
|
|
| 第7楼 scriptor | 发表于 2007-11-23 22:23 |
| 银牌会员 发帖 555 积分 1,187 | |
|
单引号 改成 双引号
试一试~~ "" 是字符串完全匹配的意思 |
|
| 第8楼 yinyuan | 发表于 2007-11-24 11:54 |
| 初级用户 发帖 22 积分 50 | |
|
改成双引号后,所有跳转都无效了
|
|
| 第9楼 fastslz | 发表于 2007-11-24 12:37 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
楼主没看到版务记录吗?谁想回了贴再被版主删除?
If Not '%Choice%'=='' SET Choice=%Choice:~0,1% 如果Choice变量不是空的,设置Choice变量取原变量的前1个字节。 也就是说Choice变量只能是1个字节,即使输入100取原变量的前1个字节也是1。 |
|
| 第10楼 hxwxyz | 发表于 2007-11-24 13:05 |
| 中级用户 发帖 123 积分 245 | |
|
学习了
|
|
| 第11楼 yinyuan | 发表于 2007-11-24 13:24 |
| 初级用户 发帖 22 积分 50 | |
Originally posted by fastslz at 2007-11-24 12:37: 彻底明白了,多谢楼上几位! 才注意到版务记录,马上改 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |