无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4366|回复: 6

这句FOR&IF复合语句哪里错误?

[复制链接]
发表于 2012-4-7 15:53:46 | 显示全部楼层 |阅读模式
想达到的效果:查找一个文件夹中所有子文件夹(包含该文件夹)中是否有PNG图片,有则继续执行命令,没有则退出。代码:

  1. @echo off
  2. 设置标题
  3. 启用延时
  4. 设置颜色
  5. :startset in=%1
  6. set out="%~dp1ico"
  7. for /r %in% %%i in (*.png) do if not exist %%a goto end
  8. ……
  9. goto end
  10. :end
复制代码

上面的for语句执行后,%in%文件夹中没有PNG图片也执行后续命令,请问,哪里错了?

[ 本帖最后由 singel 于 2012-4-8 07:37 编辑 ]
 楼主| 发表于 2012-4-7 21:05:42 | 显示全部楼层
原帖由 pznpt 于 2012-4-7 19:23 发表
楼主没有写错,是楼主理解有错:在for...in (...) do...语句块中,如果in (...)中的条件不满足,后面的do语句是不会执行的。

这样就可以了:

for /r %in% %%i in (*.png) do set flag=1
if "%flag%"=="" ...


谢谢指点O(∩_∩)O
回复

使用道具 举报

 楼主| 发表于 2012-4-9 17:39:17 | 显示全部楼层
x9tian: 在写批时,要严谨的考虑in (…) 语句块的条件是否成立!楼主也可以用if …&&for … 复合语句解决   (if 判断for的条件语句块是否成立)
for嵌套if刚学了一点皮毛,if…&&for…不会用。查了两个&&的作用,不是前面语句执行成功才执行后面语句吗?if怎么判断for语句块成立?

[ 本帖最后由 singel 于 2012-4-9 17:45 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-4-13 08:28:45 | 显示全部楼层
原帖由 x9tian 于 2012-4-13 01:12 发表


  dir /a-d/b %~dp1ico*.png&&for …in (…) do (
          …
)
  你这要求没必要用IF语句
   IF一般用来判定明确的条件,比如变量丶路径丶文件明什么的。


谢谢,又学会一点O(∩_∩)O
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-10-30 05:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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