假设你的目标目录是c:\aaa(这个可以修改),下面有a,b,c等子目录,而每个子目录下面有分别有1,2,3,4等文件,那么可以用下面的代码:
@echo off & setlocal enabledelayedexpansion
set tp=c:\aaa
for /f "delims=" %%a in ('dir /ad /b /s %tp%') do (
set cp="%%~a"
for /f "delims=" %%i in ('dir /ad /b !cp! ^| find /v /c ""') do (set /a cnt=%%i)
if {!cnt!}=={0} (
set up="%%~da%%~pa"
echo move !cp!\*.* !up! 2>nul
echo rd /s /q !cp! 2>nul
)
)
endlocal & @echo on
测试通过后,可以把两个echo去除,就可具体执行了。