标题: [文件操作] [求助]FOR循环的文件遍历问题 [打印本页]
作者: li547471962 时间: 2015-2-22 23:25 标题: [求助]FOR循环的文件遍历问题
大致功能是实现筛选文件的。
如 1 功能是 文件夹下若有123.cr2 无 123.jpg 则删除123.cr2
2功能 移动文件夹下所有.cr2文件到CR2文件夹
3功能 移动没有对应.jpg文件的.cr2文件
4退出。
那么问题来了。
遍历时会涉及到了子文件夹的情况(FOR /R参数会遍历子目录)
理想状态是 操作都是只针对BAT文件所在根文件夹而不涉及子文件夹 即,FOR循环只遍历根目录不遍历子目录。
问一下用什么参数或者语句解决?
希望得到解决!谢谢各位了!Q547471962
代码有点乱 多多包涵!
-------------------------------------------------------------------------------------------------------- :INPUT
- cls
- @echo off
- @echo.
- @echo [1] 删除无JPG的CR2
- @ECHO [2] 移动所有CR2到新建文件夹
- @ECHO [3] 筛选无JPG的CR2
- @ECHO [4] 退出
- @echo.
- @echo.
- set /p x= 请输入:
- If "%x%"=="1" goto :delet
- If "%x%"=="2" goto :mov
- If "%x%"=="3" goto :shaixuan
- If "%x%"=="4" goto :end
-
- :shaixuan
- if not "%~1"=="" CD /D "%~1"
- for /R %%F in (*.cr2) do (
- call :mov2 "%%F")
-
- @echo.
- @echo.
- @echo finish_move!
- @echo.
- @echo.
- pause
- goto :input
-
- :mov2
- IF NOT EXIST 单CR2 md 单CR2
- if not exist "%~dpn1.jpg" %DEBUG% move "%~1" 单CR2
- goto :end
-
- :delet
- @echo off
- REM set DEBUG=echo
- if not "%~1"=="" CD /D "%~1"
- for /R %%F in (*.cr2) do (
- call :delraw "%%F")
-
- )
- @echo.
- @echo.
- @echo finish_delete!
- @echo.
- @echo.
- pause
- goto :input
-
- :delraw
- if not exist "%~dpn1.jpg" %DEBUG% del /q /f "%~1"
- goto :end
-
- :mov
- @echo off
- md CR2
- move *.cr2 cr2
- @echo.
- @echo.
- @echo finish move!
- @echo.
- @echo.
- pause
- goto input
-
- :end
复制代码
-------------------------------------------------------------------------------------------------------
作者: CrLf 时间: 2015-2-23 00:27
for /R %%F in (*.cr2) do ... 是遍历子目录
for %%F in (*.cr2) do ... 是不遍历子目录
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |