用PERL实现windows系统下删除指定目录下指定修改日期的文件

PUB上有人问查找某个目录下时间超过3天的文件然后删除的dos命令怎么写,这个在UNIX或LINUX下用一条命令就可以解决了:find /TEMP -mtime +3-exec rm {} ; 但在WINDOWS环境下用命令恐怕是很难实现的了,但用PERL很容易就能做到,但需先安装Active Perl.

新建一个文本文件改名为rm.pl
代码如下:

[@more@]

#!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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值