批量 批处理把子文件夹的文件移动到上级父目录中

2025-04-16 06:44:46
推荐回答(1个)
回答1:

假设你的目标目录是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去除,就可具体执行了。