- @echo off
- set "filepath=d:\bat\" &rem 路径最后一个字符必须带\
- set "t=7" &rem 几天之前,不能超过28
- set "y=%date:~0,4%"
- set "m=%date:~5,2%"
- set "d=%date:~8,2%"
- if %m% lss 10 set "m=%m:~1,1%"
- if %d% lss 10 set "d=%d:~1,1%"
- set /a "nd=!!(d/t)*(d-t)|(d+30-t)*!(d/t)|!(d-t)*30"
- if %d% lss %t% (
- set /a "d=nd+(!(m-2)|!(m-4)|!(m-6)|!(m-8)|!(m-9)|!(m-11)|!(m-1))","d=d-(!(m-3))*2","d=d+!(y%%4)"
- set /a "m=!(m-1)*12|(m-1)"
- set /a "y=y-!(m-1)"
- ) else (
- set d=%nd%
- )
- if %m% lss 10 set "m=0%m%"
- if %d% lss 10 set "d=0%d%"
- set "tm=%y%%m%%d%"
- call :delfortime %filepath%
- goto :eof
-
- :delfortime
- set "f=%~p1"
- set "f=%f:\=\\%"
- setlocal ENABLEDELAYEDEXPANSION
- for /f "usebackq tokens=1,2" %%i in (`wmic datafile where "drive='%~d1' and path='%f%'" get Name^,LastModified`) do (
- set "tt=%%i"
- set "tt=!tt:~0,8!"
- if !tm! gtr !tt! del /q /s "%%j"
- )
- endlocal
复制代码
|