找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20180|回复: 1

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

[复制链接]
发表于 2015-7-28 14:14:27 | 显示全部楼层 |阅读模式
本帖最后由 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%
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-7-28 14:42:46 | 显示全部楼层
echo %aa%|set /p count=
改成:
set count=%aa%

评分

参与人数 1技术 +1 收起 理由
flyinnet9 + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 18:55 , Processed in 0.017210 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表