当前位置:首页 » 办公资讯 » perl怎样遍历文件夹

perl怎样遍历文件夹

发布时间: 2022-06-20 10:03:27

❶ 如何使用perl遍历一个目录下的所有文件

SubTest()DimMyName,Dic,Did,I,T,F,TT,MyFileNameT=TimeSetDic=CreateObject("Scripting.Dictionary")'创建一个字典对象SetDid=CreateObject("Scripting.Dictionary")Dic.Add("D:\MyDocuments\"),""I=0DoWhileIDic.CountKe=Dic.keys'开始遍历字典MyName=Dir(Ke(I),vbDirectory)'查找目录DoWhileMyName""IfMyName"."AndMyName".."ThenIf(GetAttr(Ke(I)&MyName)AndvbDirectory)=vbDirectoryThen'如果是次级目录Dic.Add(Ke(I)&MyName&"\"),""'就往字典中添加这个次级目录名作为一个条目EndIfEndIfMyName=Dir'继续遍历寻找LoopI=I+1LoopDid.Add("文件清单"),""'以查找D盘MyDocuments下所有EXCEL文件为例ForEachKeInDic.keysMyFileName=Dir(Ke&"*.xls")DoWhileMyFileName""Did.Add(Ke&MyFileName),""MyFileName=.WorksheetsIfSh.Name="XLS文件清单"ThenSheets("XLS文件清单").Cells.DeleteF=TrueExitForElseF=.Add.Name="XLS文件清单"EndIfSheets("XLS文件清单").[A1].Resize(Did.Count,1)=WorksheetFunction.Transpose(Did.keys)TT=Time-TMsgBoxMinute(TT)&"分"&Second(TT)&"秒"EndSub

❷ 求教,win下用perl语言遍历“文件夹1”下所有“.log”类型文件,拷贝到“文件夹2”里

PERL编列文件夹使用opendir、readdir、closedir进行,不过你的这个需求,可以直接系统调用吧:
system(" 文件夹1\\*.log 文件夹2\\");

❸ 怎样用perl将一个记录文件路径的数组遍历,找出每个文件的最后修改时间,并且最终存放在一起

my @array;

foreach (@filelist)
{
my $mtime = localtime(stat($_))
push(@array,"$_:$mtime");
}

❹ perl语言,window下,如何实现,遍历整个文件夹,将该文件夹下后缀名为.log的所有文件的文件路径

前提,你windows下装了perl环境。
代码:test.pl 'c:\usrdirctory' 'd:\out.txt'
两个参数分别为:你要遍历的目录路径;你要保存有用信息的文件路径。
如果不方便用命令行调用的话,就写死在下面的$dir,$dst后面。
例如 $dir = 'c:\usrdirctory';
#!/usr/bin/perl
my $dir = $ARGV[0];
my $dst = $ARGV[1];

$dst ||= "temp_log.txt";

if (!-d $dir) {
print "$dir is not a valid directory!\n";
exit(-1);
}
if (!opendir DIR , $dir){
print "cannot open dir, $dir\n";
exit(-1);
}
else{
foreach (readdir DIR) {
if ($_ =~ /\.log$/) {
print $_,"\n";
$out .= "$_\n";
}
}
closedir DIR;
}

if (!open FILE,">$dst"){
print "open file,$dst failed!\n";
exit(-1);
}
else{
print FILE $out;
close FILE;
}

print "Done!\n";
exit(0);

❺ perl如何遍历指定文件夹下的指定扩展名文件,并按时间顺序要求删除

用正则表达式去找你要删的文件,匹配扩展名。用stat函数获取文件访问/创建时间。

❻ perl语言怎么循环生成文件,做遍历测试用的

#!/bin/perl -w
for(my $j = 0 ; $j < 4; $j = $j + 1)
{
for(my $k = 0; $k < 2; $k++)
{
for(my $l = 0; $l < 4; $l++)
{
for(my $m = 0; $m < 16; $m++ )
{
open IN,"test.txt" or die "test.txt";
open OUT, ">test_$j\_$k\_$l\_$m.txt" or die "test_$j\_$k\_$l\_$m.txt";
print "$j\_$k\_$l\_$m\n";
while(<IN>)
{
$_=~s/a=0/a=$j/g;
$_=~s/b=0/b=$k/g;
$_=~s/c=0/c=$l/g;
$_=~s/d=0/d=$m/g;
print OUT $_;
}
}
}
}
}

你的之所以实现不了,可能和你的test_$j_$k这样的命名方式有关。
也可能和你文件句柄打开位置有关。上面的代码是我修改过的你可以再试试,如果还有问题,可以及时联系。

❼ perl 遍历根目录下的子目录即子目录下的子目录 unix下 把遍历得到的路径存到数组下

#!/usr/bin/perl

$directory ="";
$directory = $ARGV[0]; # 定义所要遍历的目录,默认为脚本所在的目录
@files = q{};

system "touch temp_files"; # 建立一个临时文件用来存储所有的文件和目录信息
system "find ./$directory >> temp_files"; #将信息导入到临时文件中

open(DAT, temp_files) || die("Could not open temp_files!");
@files = <DAT>; #将信息复制到数组files中
system "rm temp_files";

foreach $each_row(@files) #输出数组files的内容
{
print "$each_row";
}

#假设脚本保存名字为run.pl,则运行的时候,比如要遍历/home/usr里的目录和文件,则
run.pl home/usr

如果仅仅要遍历目录,则
system "find ./$directory >> temp_files";
可能要改成
system "find ./$directory -type d >> temp_files";

❽ perl 如何遍历指定路径下的不同文件夹下的指定扩展名文件并读取内容

给你一个比较复杂点的例子。。。。
opendir (DIR,"X:\\")||die"$!";
chdir("X:\\");
@dirs=grep{/^\.\.?$/}readdir DIR;
foreach $dir(@dirs){
opendir (DIR2,$dir)||die"$!";
@files=grep{/indd$/}readdir DIR2;
close DIR2;
}
close DIR;

当然还有更多的方法,可以用glob,LS所说的File::Find等等。。。。。

❾ 如何用perl来遍历一个文件夹下的所有文件夹,找出所有名字中带xx的文件,然后将这些文件拷贝到另一个文件

http://..com/link?url=-XB7dhH4zdy57BXkWiw_6-aZsuj_2aUdvjfKJETsZ_
这个讲的遍历文件挺好的,你看看呗

热点内容
马路上汽车的噪音在多少分贝 发布:2023-08-31 22:08:23 浏览:2185
应孕棒多少钱一盒 发布:2023-08-31 22:08:21 浏览:1652
标准养老金一年能领多少钱 发布:2023-08-31 22:05:05 浏览:1950
湖北通城接网线多少钱一个月 发布:2023-08-31 21:59:51 浏览:2019
开随车吊车多少钱一个月 发布:2023-08-31 21:55:06 浏览:1777
京东付尾款怎么知道前多少名 发布:2023-08-31 21:52:58 浏览:2102
在学校租铺面一个月要多少钱 发布:2023-08-31 21:52:09 浏览:2244
2寸有多少厘米 发布:2023-08-31 21:50:34 浏览:1882
知道电压如何算一小时多少电 发布:2023-08-31 21:46:20 浏览:1889
金手镯54号圈周长是多少厘米 发布:2023-08-31 21:44:28 浏览:2024