批处理程序操作会操作到子文件夹,怎样避免?
大致功能是实现筛选文件的。
如 1 功能是 文件夹下若有123.cr2 无 123.jpg 则删除123.cr2
2功能 移动文件夹下所有.cr2文件到CR2文件夹
3功能 移动没有对应.jpg文件的.cr2文件
4退出。
可是运行发现 出现了操作涉及到了子文件夹的情况,即移动时会将子文件夹的文件一起判断然后移动。。
理想状态是 1 2 3 操作都是只针对BAT文件所在文件夹而不涉及子文件夹。
希望得到解决!谢谢各位了!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
-------------------------------------------------------------------------------------------------------