问题有点绕嘴。现在只能实现删除指定文件夹内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