用XP 2000的for命令/f/r开关的批处理(要求只需一段语句处理一次),可删除指定日期和时间(一般以创建时间为据较实用,如要以修改时间为据,可去掉 /t:c 开关)的目录和文件(包括带空格的长文件名).
1-A
以下是删除e根目录下2004年2月23号创建的目录或文件
@echo off
dir e: /t:c>e:\finddate.txt
for /f "tokens=1,4* delims= " %%1 in (e:\finddate.txt) do if %%1==2004-02-23 deltree /y e:\"%%2*"
1-B
以下是删除e目录下2004年2月23号创建的文件,所有子目录及其文件,如下:
@echo off
dir e: /t:c /s>e:\finddate.txt
for /f "tokens=1,4* delims= " %%1 in (e:\finddate.txt) do for /r e: %%a in ("%%2*"<img src="images/smilies/face-wink.png" align="absmiddle" border="0"> do if %%1==2004-02-23 deltree %%a
(注意了!当程序窗口给出将要删的目录或文件名要你确认时,你一定要看清楚了它的具体路径,是不是你要删的那个,否则文件时间不同的另外的同名目录或文件也将被删!
如果确定可删或不存在文件时间不同的另外的同名目录或文件,就可在deltree后加上/y参数.
如果一定要仅仅删指定时间的目录或文件,就有点复杂了,倒不如分几步走,但最后还要你一个一个找出来的。以上的批处理虽然也要你一个一个确认,但只要一段语句。
如有人能用字数差不多的一段语句实现仅仅删除指定时间的目录或文件,赶快贴上来吧!
真希望微软或有人设计增加象xcopy那样的时间参数,那就方便了!)
*******************************************
如果要精确到几点几分,
2-A
要删除e根目录下2004年2月23号15点31分创建的目录或文件,如下:
@echo off
dir e: /t:c>e:\findtime.txt
for /f "tokens=1,2,4* delims= " %%1 in (e:\findtime.txt) do if %%1%%2==2004-02-2315:31 deltree /y e:\"%%3*"
2-B
如要删除e目录下2004年2月23号15点31分创建的文件,所有子目录及其文件,
如下:
@echo off
dir e: /t:c>e:\findtime.txt
for /f "tokens=1,2,4* delims= " %%1 in (e:\findtime.txt) do for /r e: %%a in ("%%3*"<img src="images/smilies/face-wink.png" align="absmiddle" border="0"> do if %%1%%2==2004-02-2315:31 deltree %%a
(注意了!当程序窗口给出将要删的目录或文件名要你确认时,你一定要看清楚了它的具体路径,是不是你要删的那个,否则文件时间不同的另外的同名目录或文件也将被删!
如果确定可删或不存在文件时间不同的另外的同名目录或文件,就可在deltree后加上/y参数.
如果一定要仅仅删指定时间的目录或文件,就有点复杂了,倒不如分几步走,但最后还要你一个一个找出来的。以上的批处理虽然也要你一个一个确认,但只要一段语句。
如有人能用字数差不多的一段语句实现仅仅删除指定时间的目录或文件,赶快贴上来吧!
真希望微软或有人设计增加象xcopy那样的时间参数,那就方便了!)