[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理if命令使用咨询

set /p v=请输入您的生肖:
怎么用if命令来判断输入的字中是否含有12生肖中的一种呢?请把代码写给我`谢谢了

[ 本帖最后由 start 于 2008-8-21 10:17 编辑 ]

@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

TOP

能行,谢谢哦。。。可以不可以在给我解释一下那个set v=1  和 (set n=0)这2个代码呀``

[ 本帖最后由 start 于 2008-8-20 17:12 编辑 ]

TOP

或许改一下命名方式你就看懂了

@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了:)

TOP

就是满足条件的话改变一下N的值,最后根据N是否变化了来判断输入是否正确。

这样也可以:

  1. @echo off
  2. set/p v=输入生肖:
  3. echo 鼠牛虎兔龙蛇马羊猴鸡狗猪|FIND "%v: =%">nul 2>nul&&echo OK||echo 貌似没有属[%v: =%]的哦 ^^o^^
  4. pause>nul
复制代码

[ 本帖最后由 itrui 于 2008-8-20 18:18 编辑 ]
1

评分人数

TOP

嗯,你们一说明白了。
在问问大虾们,
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 编辑 ]

TOP

以“if %n% =="鼠" (goto 到谋一处) else ( ”为例将 "鼠" 旁边的 " " 去掉另外 鼠 与 == 之间应有空格else 与 (  间也有空格

TOP

建议这样写
  1. if %n% equ 1(echo 不存在这一生肖) else goto %n%
  2. :鼠
  3. ...
  4. :牛
  5. ...
  6. ......
复制代码

TOP

回复 8楼 的帖子

可以用了``谢谢大家的帮助了哦。。mkl你那样写可以,条条大路通罗马嘛``呵呵。

TOP

返回列表