标题: [其他] 批处理if命令使用咨询 [打印本页]
作者: start 时间: 2008-8-20 16:37 标题: 批处理if命令使用咨询
set /p v=请输入您的生肖:
怎么用if命令来判断输入的字中是否含有12生肖中的一种呢?请把代码写给我`谢谢了
[ 本帖最后由 start 于 2008-8-21 10:17 编辑 ]
作者: 523066680 时间: 2008-8-20 17:00
@echo off
set n=1
set /p v=请输入您的生肖:
for %%a in (鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪) do (if "%v%"=="%%a" (set n=0))
if %n% equ 1 (echo 不存在这一生肖) else (echo,存在这一生肖)
pause
作者: start 时间: 2008-8-20 17:09
能行,谢谢哦。。。可以不可以在给我解释一下那个set v=1 和 (set n=0)这2个代码呀``
[ 本帖最后由 start 于 2008-8-20 17:12 编辑 ]
作者: oowgsoo 时间: 2008-8-20 18:09 标题: 或许改一下命名方式你就看懂了
@echo off
set find=0
set /p v=请输入您的生肖:
for %%a in (鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪) do (if "%v%"=="%%a" (set find=1))
if %find% == 0 (echo 不存在这一生肖) else (echo,存在这一生肖)
pause
这里的for循环不管找没找到都要执行12次,如果循环体太复杂,或许就要用goto了:)
作者: itrui 时间: 2008-8-20 18:11
就是满足条件的话改变一下N的值,最后根据N是否变化了来判断输入是否正确。
这样也可以:
-
- @echo off
- set/p v=输入生肖:
- echo 鼠牛虎兔龙蛇马羊猴鸡狗猪|FIND "%v: =%">nul 2>nul&&echo OK||echo 貌似没有属[%v: =%]的哦 ^^o^^
- pause>nul
复制代码
[ 本帖最后由 itrui 于 2008-8-20 18:18 编辑 ]
作者: start 时间: 2008-8-20 19:12
嗯,你们一说明白了。
在问问大虾们,
if语句能不一次判断多次``
就好比刚才你们给我写的
@echo off
set n=1
set /p v=请输入您的生肖:
for %%a in (鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪) do (if "%v%"=="%%a" (set n=0))
if %n% equ 1 (echo 不存在这一生肖) else (echo,存在这一生肖)
pause
if %n% equ 1(echo 不存在这一生肖) else (
if %n% =="鼠" (goto 到谋一处) else (
if %n% =="虎" (goto 到谋一处)else(
.......一直到12生肖全部判断完。
我试了一下,不行,不知道是我写错了还是if语句不能这么用,要是不能这么用,能人我个方法吗?
itrui的那段代码前面懂,可是FIND "%v: =%">nul 2>nul这一句不太明白.
[ 本帖最后由 start 于 2008-8-20 19:24 编辑 ]
作者: mkl 时间: 2008-8-20 19:50
以“if %n% =="鼠" (goto 到谋一处) else ( ”为例将 "鼠" 旁边的 " " 去掉另外 鼠 与 == 之间应有空格else 与 ( 间也有空格
作者: mkl 时间: 2008-8-20 19:53
建议这样写- if %n% equ 1(echo 不存在这一生肖) else goto %n%
- :鼠
- ...
- :牛
- ...
- ......
复制代码
作者: start 时间: 2008-8-20 20:10 标题: 回复 8楼 的帖子
可以用了``谢谢大家的帮助了哦。。mkl你那样写可以,条条大路通罗马嘛``呵呵。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |