就是因为硬盘空间有限,过一段时间要删除监控系统自动备份的视频监控文件。而且是在D:\videofiles文件里面,以每天的日期自动建个文件夹比如:20111129,每天的视频就是以这样的形式以日期命名的文件夹备份在里面。请DOS高手帮我编写个批处理可以实现自动删除七天前备份的文件。只要删除这些以日期每天备份的文件夹和里面的视频就行了,万分感谢!
第1个回答 2013-09-26
删除备份的文件夹,里面的视频也就被删除了,也就是说只要删除七天前备份的文件夹就可以了这样代码就简单些:@echo off::创建tmp.vbs脚本,可以取得7天之前的日期
echo>tmp.vbs wscript.echo dateadd("d",-7,date)::运行tmp.vbs并从结果中分离出年/月/日数据,分别用变量y/m/d代表
for /f "tokens=1,2,3* delims=- " %%i in ('cscript /nologo tmp.vbs') do (
set y=%%i
set m=%%j
set d=%%k
)::若月份和日期为个位数时前面补0
if %m% lss 10 if %m:~0,1% neq 0 set m=0%m%
if %d% lss 10 if %d:~0,1% neq 0 set d=0%d%::将最终年月日数据组合起来
set rq=%y%%m%%d%echo.&echo 按任意键即将删除 %rq% 以前建立的文件
pause>nul::判断文件夹
for /f "tokens=*" %%i in ('dir/ad/b D:\videofiles') do if %%i leq %rq% rd /q/s "%%i"::善后事宜
del tmp.vbs
pause
echo>tmp.vbs wscript.echo dateadd("d",-7,date)::运行tmp.vbs并从结果中分离出年/月/日数据,分别用变量y/m/d代表
for /f "tokens=1,2,3* delims=- " %%i in ('cscript /nologo tmp.vbs') do (
set y=%%i
set m=%%j
set d=%%k
)::若月份和日期为个位数时前面补0
if %m% lss 10 if %m:~0,1% neq 0 set m=0%m%
if %d% lss 10 if %d:~0,1% neq 0 set d=0%d%::将最终年月日数据组合起来
set rq=%y%%m%%d%echo.&echo 按任意键即将删除 %rq% 以前建立的文件
pause>nul::判断文件夹
for /f "tokens=*" %%i in ('dir/ad/b D:\videofiles') do if %%i leq %rq% rd /q/s "%%i"::善后事宜
del tmp.vbs
pause