标题: 请教一个批处理 if 和 set命令 [打印本页] 作者: yinyuan 时间: 2007-11-23 11:02 标题: 请教一个批处理 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 ]作者: upsco 时间: 2007-11-23 11:16 If %Choice%Choice==Choice Goto Start 这句是判断变量Choice的值是否为空,既判断用户是否有输入作者: yinyuan 时间: 2007-11-23 11:24
Quote:
Originally posted by upsco at 2007-11-23 11:16:
If %Choice%Choice==Choice Goto Start 这句是判断变量Choice的值是否为空,既判断用户是否有输入
但去掉这一条,在没有输入的情况下按回车,结果是一样的。看不出有什么不同呀。
能不能解释一下,有这条命令和没有这条命令的具体区别?作者: fastslz 时间: 2007-11-23 11:36 @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
Originally posted by fastslz at 2007-11-24 12:37:
楼主没看到版务记录吗?谁想回了贴再被版主删除?
If Not '%Choice%'=='' SET Choice=%Choice:~0,1%
如果Choice变量不是空的,设置Choice变量取原变量的前1个字节 ...