打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
bat命令如何实现删除一个月以前的文件?
晕,发出来才发现打掉了一对引号,重新发

BatchFile code
::删除创建日期超过指定天数的文件 --- Forever Young [2011-11-17]@echo off::把需要保留多少天内创建的文件天数赋值给sDay,举例:保留30天内的set sDay=30::指定要操作的路径,这里举例:c:\testset workPath=c:\test::处理日期格式,因为各语言版本的操作系统日期格式有所不同set rp="HKCU\Control Panel\International"for /f "tokens=3" %%a in ('reg query %rp% /v sdate^|findstr /i "sdate"') do (set sDate=%%a)for /f "tokens=3" %%a in ('reg query %rp% /v idate^|findstr /i "idate"') do (set iDate=%%a)::得到当日的天数call :GetToday %date%::转到需要操作的路径pushd %workPath%::处理文件日期信息,我这里使用了两次不同的获取方式,目的就是准确的得到创建日期和文件名::如果不需要获取创建日期,可以减少一次循环setlocal enabledelayedexpansionfor %%i in (*) do ( for /f "tokens=1" %%a in ('dir /tc "%%i"^|findstr "[0-9]*\%sDate%[0-9]*\%sDate%[0-9]*"') do (  set tmpDate=%%a  set tmpDate=!tmpdate:%sDate%= !  call :GetDays !tmpDate!  set /a dtweens=%tdays% - !days!  if !dtweens! gtr %sDay% (del /f /q "%%i") ))pauseexit::处理日期到天数的转换:GetDaysif %iDate%==0 (set YY=%3&set MM=%1&set DD=%2)if %iDate%==1 (set YY=%3&set MM=%2&set DD=%1)if %iDate%==2 (set YY=%1&set MM=%2&set DD=%3)IF %MM:~0,1% EQU 0 SET MM=%MM:~1%IF %DD:~0,1% EQU 0 SET DD=%DD:~1%set /a Days=%DD%-32075+1461*(%YY%+4800+(%MM%-14)/12)/4+367*(%MM%-2-(%MM%-14)/12*12)/12-3*((%YY%+4900+(%MM%-14)/12)/100)/4goto :eof ::处理当日日期的获取:GetTodayecho %1|findstr [0-9]>nul||shiftset dn=%1set dn=%dn:/= %call :GetDays %dn%set tdays=%Days%
------解决方案--------------------
批处理删除指定天数日期之前的文件
http://bbs.bathome.net/thread-3334-1-1.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
批处理文件编写中的经验
批处理(bat)命令学习的一些总结
dos中特殊符号命令的应用
Delphi写的验证身份证号有效性函数
多种产品销售额数据可视化分析及相关性分析
JavaScript计算指定日期与当前日期的相差天数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服