标题: 如何选择一组变量中的某个值
[打印本页]
作者: murong
时间: 2007-12-4 23:41
标题: 如何选择一组变量中的某个值
如何选择一组变量中的某个值,就是输入的字符与变量库中的比较,例如:
@echo off
set in=a b c
set /p input=输入:
if /i "%input%"=="%in%" echo Yes
if /i not %input%=="%in%" echo No
pasue
上面的命令,比如我输入a,b,c 3个中那个就显示Yes,输入别的就显示No
作者: lxmxn
时间: 2007-12-5 00:02
@echo off
set in=a b c
set /p input=请输入:
for %%a in (%in%) do if /i "%%a"=="%input%" echo Yes & goto end
echo NO
:end
pause
作者: murong
时间: 2007-12-5 00:12
Quote: |
Originally posted by lxmxn at 2007-12-5 12:02 AM:
@echo off
set in=a b c
set /p input=请输入:
for %%a in (%in%) do if /i "%%a"=="%input%" echo Yes & goto end
echo NO
:end
pause |
|
能否详细的解释下是怎么得到变量的过程
在前面的in不是就等于 a b c吗
作者: lxmxn
时间: 2007-12-5 00:19
这个是用你输入的字符和in里面的每个以空格分割的元素进行比较,如果相等,则显示“Yes”,否则显示“NO”。
作者: murong
时间: 2007-12-5 00:29
OK,谢谢恢复,已经明白了,也就是这种在组内取值必须用for才能完成。不像Linux下的if
作者: lxmxn
时间: 2007-12-5 00:31
Linux 下的if是怎么判断的呢?
作者: murong
时间: 2007-12-5 00:40
lxmxn能否加你的QQ问些别的问题
作者: murong
时间: 2007-12-5 00:42
Quote: |
Originally posted by murong at 2007-12-5 12:12 AM:
能否详细的解释下是怎么得到变量的过程
在前面的in不是就等于 a b c吗 |
|
如果我把 a b c 些在for的()里,是不是不行啊。
那么取得的值就是最后一个c,不知道对不对?
作者: murong
时间: 2007-12-5 00:46
Quote: |
Originally posted by murong at 2007-12-5 12:12 AM:
能否详细的解释下是怎么得到变量的过程
在前面的in不是就等于 a b c吗 |
|
for %%a in (%in%) do if /i "%%a"=="%input%" echo Yes & goto end
为什么%%a在==前,如果%input%在==前是什么样?
作者: murong
时间: 2007-12-5 01:09
Quote: |
Originally posted by lxmxn at 2007-12-5 12:02 AM:
@echo off
set in=a b c
set /p input=请输入:
for %%a in (%in%) do if /i "%%a"=="%input%" echo Yes & goto end
echo NO
:end
pause |
|
这样是不是要有个变量延迟的设置啊
作者: lxmxn
时间: 2007-12-5 04:08
我QQ经常隐身了,加我的Gmail吧。lxmxn520@Gmail.com 。
Quote: |
如果我把 a b c 些在for的()里,是不是不行啊。
那么取得的值就是最后一个c,不知道对不对? |
|
可以取到括号里面的每个值。
这里不需要变量延迟,因为在for内部没有设置新的变量。