ITPub博客

首页 > 数据库 > Oracle > 用PERL实现windows系统下删除指定目录下指定修改日期的文件

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

原创 Oracle 作者:afoxwwk 时间:2007-03-15 16:12:52 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/171059/viewspace-905333/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 一年之计在于春
下一篇: Ask MySelf - OCA
请登录后发表评论 登录
全部评论
  • 博文量
    4
  • 访问量
    8423