Board logo

标题: [其他] [已解决]批处理命令if...else的问题,应该如何判断? [打印本页]

作者: flyinnet9    时间: 2015-7-28 14:14     标题: [已解决]批处理命令if...else的问题,应该如何判断?

本帖最后由 flyinnet9 于 2015-7-28 16:28 编辑

如下代码,想要的结果是
1.如果flag=1,则echo flag ok,判断结束。
2.如果flag不等于1,则判断count的值,并输出
现在的问题是:
1.如果使用变量延迟,当flag不等于1时,即使count=4,也会输出count<=3
2.如果不使用变量延迟,则报错:“此时不应有 (”

各位大神帮看看哪里的问题

有延迟代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p flag=请输入数字:
  4. set /a aa=%random%%%4+1
  5. echo %aa%|set /p count=
  6. if %flag%==1 (
  7.   echo flag ok
  8. ) else if !count!==4 (
  9.     echo count=4
  10. ) else if !count! leq 3 (
  11.     echo count^<=3
  12. )
  13. echo count=%aa%
  14. echo count=%count%
复制代码
无延迟代码
  1. @echo off
  2. ::setlocal enabledelayedexpansion
  3. set /p flag=请输入数字:
  4. set /a aa=%random%%%4+1
  5. echo %aa%|set /p count=
  6. if %flag%==1 (
  7.   echo flag ok
  8. ) else if %count%==4 (
  9.     echo count=4
  10. ) else if %count% leq 3 (
  11.     echo count^<=3
  12. )
  13. echo count=%aa%
  14. echo count=%count%
复制代码

作者: DAIC    时间: 2015-7-28 14:42

echo %aa%|set /p count=
改成:
set count=%aa%




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2