當前位置:首頁 » 辦公資訊 » 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