自动删除30天前文件批处理方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
@echo off
setlocal enabledelayedexpansion
call:del30 "e:\admin"
goto :eof
:del30
call:getdate date
call:date2day date
pushd "%~1"
if /i not "!cd!"=="%~f1" exit /b 1
for /f "delims=" %%i in ('dir /a:-d /b') do (
set "datei=%%~ti"
call:getdate datei
call:date2day datei
set /a "date30=!date.num!-30"
if !datei.num! lss !date30! del /f "%%i"
)
exit /b 0
:date2day
set /a "%~1.num=0"
set /a "%~1.num+=(!%~1.y!-1)*365+(!%~1.y!-1)/4-(!%~1.y!-1)/100+(!%~1.y!-1)/400"
set /a "d=28+^!(!%~1.y!%%4)-^!(!%~1.y!%%100)+^!(!%~1.y!%%400)"
set /a "m=0"
for %%i in (31 !d! 31 30 31 30 31 31 30 31 30 31) do (
set /a "m+=1"
if !%~1.m! gtr !m! set /a "%~1.num+=%%i"
)
set /a "%~1.num+=!%~1.d!"
exit /b
:getdate
set "%~1.y=!%~1:~0,4!"
set "%~1.m=!%~1:~5,2!"
set "%~1.d=!%~1:~8,2!"
set /a "%~1.y=10000!%~1.y!%%10000"
set /a "%~1.m=10000!%~1.m!%%10000"
set /a "%~1.d=10000!%~1.d!%%10000"
exit /b
注:复制以上代码到TXT文档编辑为BA T即可。红色字体表示天数,蓝色为地址。
用ntbackup加Windows任务计划来实现自动删30天(30天为例,可根据实际情况更改)。方法跟用ntbackup加Windows任务计划来实现自动备份一样。