批处理删除当前文件夹下当前日期2天前的文件夹和文件

2024年11月02日 16:22
有1个网友回答
网友(1):

帮你写个删除修改日期在2天前的文件然后删除空文件夹的, 应该可以满足要求

先按代码运行测一下,会显示要删的文件及其修改日期,但不删,把第14行行首的rem去掉运行才会真实删除显示的文件, 由于测试时有些文件夹还没删空,所以测试时显示的空文件夹与最后运行时并不一致

@echo off
set/a n=2   &rem 可调整 不要超过一个月的天数
set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
set/a d-=n,"1/(d>>31)" 2>nul&&(
    set/a m-=1,d+=31,y-=!m,m+=!m*12
    set/a "d-=!(m-2)*(3-!(y&3))+!(m-4)+!(m-6)+!(m-9)+!(m-11)")
set/a m+=100,d+=100
set ymd=%y%-%m:~1%-%d:~1%
echo 删除%n%天前文件
cd/d "%~dp0"
for /r %%i in (*)do if /i not "%%i"=="%~f0" (
    if "%%~ti" lss "%ymd%y" (
        echo %%~ti  %%i
rem        del "%%i"
))
echo 删除空文件夹
for /f "delims=" %%i in ('dir/b/ad/s^|sort/r')do (
     rd "%%i" 2>nul&&echo %%i
)
pause