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

[其他] [已解决]批处理命令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%
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

评分人数

TOP

返回列表