加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何批处理删除指定目录下指定日期前的文件(操作简单的好方法)

(2012-04-17 15:22:29)
标签:

杂谈

点击…>1…>2就可以进入江海明子的博文1江海明子的博文2

点击页面上的江海明子的博客http://blog.sina.com.cn/jshmxyming

就可以进入我的博客首页。

百度或SoSo中搜索:如何批处理删除指定目录下指定日期前的文件

就能搜索到:如何批处理删除指定目录下指定日期前的文件_江海明子_新浪博客

 

 

如果想快速、方便地删除指定目录下指定日期前的文件,不妨试试下面的方法:

1、在桌面上新建个文本文档,如:新建 文本文档.txt。方法是:

在桌面的空白处右击,选择:新建-文本文档,其中包含内容:

 

@echo off&setlocal enabledelayedexpansion


::
以下 dz=之后为预定处理某盘某目录(当然也可以是根目录如e:\)
:: ds=
为预定要保留的天数 (可修改,但不要大于28

set dz=g:\temp
set ds=7

::
取当前系统日期的 年、月、日

set dy=�te:~,4%
set dm=�te:~5,2%
set dd=�te:~8,2%
echo
当前是 %dy%%dm%�%

::
计算应该删的文件的最新日期

set /a "feb=^!(%dy%%%4)+28"
if "%dy:~2,2%" equ "00" set/a "feb=!feb!-1+^!(%dy:~,2%%%4)"

set/a "dd-=%ds%"
if �% leq 0 (
set n=0
set/a dm-=1
if !dm! equ 0 set/a "dy=%dy%-1,dm=0+12"
for %%a in (31 �b% 31 30 31 30 31 31 30 31 30 31) do (
set/a n=!n!+1
if !n! equ %dm% set/a "dd=!dd!+%%a"
)
)

set/a "ymd=!dy!*10000+!dm!*100+!dd!"
echo
要删除文件的最新日期为%ymd%
echo.
echo
停顿一下看看日期对否,按任意键继续... & pause>nul

::-------
逐个提取文件获取日期操作--------


cd/d "%dz%"
for /r . %%b in (*.*) do (
set "ftm=%%~tb"
set/a "fdt=!ftm:~,4!*10000+!ftm:~5,2!*100+!ftm:~8,2!"
if !fdt! leq %ymd% echo
要删文件%%b %%~tb)

::
测试成功后将上行中括号前的“echo 要删文件%%b %%~tb换为“del/q "%%b"”(不包括中文双引号)即可。

echo
完成,按任意键退出...&pause>nul

 

上述第四行等号后面红色部分是绝对路径,可自定

第五行等号后面绿色的数字是几天前的时间,可自定

一定要照倒数第二行的做,才能真正删除

日期格式必须是yyyy-MM-dd的,设置方法是:

开始-设置-控制面板-区域和语言选项-自定义-日期(短日期格式选:yyyy-MM-dd-确定。

有::的行只是注释,不执行,也不显示

 

2、改“新建 文本文档.txt”为“删除指定目录下指定日期前的文件.bat,保存在除桌面和C盘以外的分区上,如:D:\删除指定目录下指定日期前的文件.bat

3、如果想快速、方便地删除指定目录下指定日期前的文件,只要双击“D:\删除指定目录下指定日期前的文件.bat”根据提示操作即可。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有