bat制作,删除指定文件夹内,文件内的n天前的文件夹

问题有点绕嘴。现在只能实现删除指定文件夹内n天前的文件夹。但是实现不了删除指定文件夹内的文件夹的n天前的文件

试试这个脚本,记住新建一个目录测试,避免误删:

@echo off
setlocal

rem 目标文件夹
set "targetFolder=X:\TargetFolder"
rem n天前
set /A "daysAgo=7"

for /F "delims=" %%F in ('dir /B /A:D "%targetFolder%"') do (
    set "folderPath=%targetFolder%\%%F"
    for /F %%A in ('WMIC OS GET LocalDateTime ^| findstr /B [0-9]') do set "dateTime=%%A"
    set "folderDateTime=%%~tF"
    setlocal enabledelayedexpansion
    if "!folderDateTime:~0,10!" lss "!dateTime:~0,8!" (
        set /A "dateDiff=(!dateTime:~0,4!-!folderDateTime:~0,4!)*365+(1!dateTime:~4,2!-1!folderDateTime:~4,2!)*30+1!dateTime:~6,2!-1!folderDateTime:~6,2!"
        if !dateDiff! gtr %daysAgo% (
            echo Deleting folder: !folderPath!
            rd /S /Q "!folderPath!"
        )
    )
    endlocal
)
endlocal