Robocopy 文件夹如果文件夹中的所有文件都超过 60 天

Robocopy folder IF ALL files in the folder are older than 60 days

我正在使用这个小批处理文件来归档我的文件。

:: Move the files

robocopy P:\Folder1 Q:\Folder2 /move  /e /minage:60

:: Delete empty folders

q:

cd Folder2

for /f "tokens=*" %%d in ('dir /ad/b/s ^| sort /R') do rd "%%d"

pause >nul

但是,问题是我的很多文件夹包含不同年龄的文件。我最终在源和目标中拆分了文件夹。

你能帮我让 bat 文件只移动所有文件都超过 60 天的文件夹吗?

谢谢

首先 运行 仅列表模式下的 robocopy,如果没有 "too new" 文件,则执行实际的移动操作:

robocopy P:\Folder1 Q:\Folder2 /s /minage:60 /L /V /njh /njs | find "too new" >nul
if %errorlevel% EQU 0 (
    robocopy P:\Folder1 Q:\Folder2 /move /s /minage:60
)

pause >nul

使用 /s 参数而不是 /e,希望不需要删除空文件夹。