PUB上有人问查找某个目录下时间超过3天的文件然后删除的dos命令怎么写,这个在UNIX或LINUX下用一条命令就可以解决了:find /TEMP -mtime +3-exec rm {} ; 但在WINDOWS环境下用命令恐怕是很难实现的了,但用PERL很容易就能做到,但需先安装Active Perl.
新建一个文本文件改名为rm.pl
代码如下:
#!c:perlbin -w
#window系统下删除指定目录下指定修改日期的文件.
use strict;
use FileHandle;
my @filenames;
my $filename;
my ($day,$dictionary) = @ARGV;
opendir (DIR,$dictionary)|| die "can not open it:$!";
@filenames=readdir(DIR);
close(DIR);
foreach $filename(@filenames){
if ($filename eq '.') {next;}
if ($filename eq '..') {next;} #这一段不能去掉,我测试时漏了这一句,差点把C:下的文件删了
if ( -M "$dictionary$filename" >$day){ #$day判断文件修改时间
print "$dictionary$filenamen";
my $cmd = "del $dictionary$filename";
print "$cmdn";
system($cmd); #这里执行系统命令删除
}
}
运行方式:
rm.pl 3 c:你的目录
其中参数中的3是指删除3天前的文件。
正确的源程序请看:
rm.pl
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/171059/viewspace-905333/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/171059/viewspace-905333/