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

[文件操作] [求助]FOR循环的文件遍历问题

[复制链接]
发表于 2015-2-22 23:25:07 | 显示全部楼层 |阅读模式
大致功能是实现筛选文件的。
如 1 功能是 文件夹下若有123.cr2 无 123.jpg 则删除123.cr2
2功能 移动文件夹下所有.cr2文件到CR2文件夹
3功能 移动没有对应.jpg文件的.cr2文件
4退出。
那么问题来了。

遍历时会涉及到了子文件夹的情况(FOR /R参数会遍历子目录)

理想状态是  操作都是只针对BAT文件所在根文件夹而不涉及子文件夹 即,FOR循环只遍历根目录不遍历子目录。

问一下用什么参数或者语句解决?
希望得到解决!谢谢各位了!Q547471962


代码有点乱 多多包涵!


-------------------------------------------------------------------------------------------------------
  1. :INPUT
  2. cls
  3. @echo off
  4. @echo.
  5. @echo         [1] 删除无JPG的CR2
  6. @ECHO         [2] 移动所有CR2到新建文件夹
  7. @ECHO         [3] 筛选无JPG的CR2
  8. @ECHO         [4] 退出
  9. @echo.
  10. @echo.
  11. set /p x=  请输入:
  12. If "%x%"=="1" goto :delet
  13. If "%x%"=="2" goto :mov
  14. If "%x%"=="3" goto :shaixuan
  15. If "%x%"=="4" goto :end

  16. :shaixuan
  17. if not "%~1"=="" CD /D "%~1"
  18. for /R %%F in (*.cr2) do (
  19.     call :mov2 "%%F")

  20. @echo.
  21. @echo.
  22. @echo         finish_move!
  23. @echo.
  24. @echo.
  25. pause
  26. goto :input

  27. :mov2
  28. IF NOT EXIST 单CR2 md 单CR2
  29. if not exist "%~dpn1.jpg" %DEBUG% move "%~1" 单CR2
  30. goto :end

  31. :delet
  32. @echo off
  33. REM set DEBUG=echo
  34. if not "%~1"=="" CD /D "%~1"
  35. for /R %%F in (*.cr2) do (
  36.     call :delraw "%%F")

  37. )
  38. @echo.
  39. @echo.
  40. @echo         finish_delete!
  41. @echo.
  42. @echo.
  43. pause
  44. goto :input

  45. :delraw
  46. if not exist "%~dpn1.jpg" %DEBUG% del /q /f "%~1"
  47. goto :end

  48. :mov
  49. @echo off
  50. md CR2
  51. move *.cr2 cr2
  52. @echo.
  53. @echo.
  54. @echo         finish move!
  55. @echo.
  56. @echo.
  57. pause
  58. goto input

  59. :end
复制代码
-------------------------------------------------------------------------------------------------------
发表于 2015-2-23 00:27:55 | 显示全部楼层
for /R %%F in (*.cr2) do ... 是遍历子目录
for %%F in (*.cr2) do ... 是不遍历子目录
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 15:18 , Processed in 0.016819 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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