- 论坛徽章:
- 0
|
我google了一下 Modules: File::Find 然后改了一下 ok了 解决了
贴出来 瞧瞧 (有两句我还没都看懂 hehe~)
#! c:\perl\bin\perl -w
use strict;
use File::Find;
my %directories;
find( \&filehandler, "d:/1" );
for my $filename ( sort keys %directories ) {
my @dirlist = @{$directories{ $filename } };
if ( scalar @dirlist => 1 ) {
# print "$filename\n";
for ( @dirlist ) {
# print "$_".'/'."$filename\n";
my $bat = "$_".'/'."$filename\n";
system ("$bat");
}
} # if
} # for
sub filehandler {
# Check to make sure that it's a file, not a directory
return unless -f $File::Find::name;
# Just take the filename, and convert to lowercase
my $nameonly = lc $_;
# See if it's a .bat file
return unless $nameonly =~ m/\.(bat)$/i;
$directories{ $nameonly } = [] unless defined $directories{ $nameonly };
push( @{$directories{ $nameonly } }, $File::Find::dir );
不过还有个很关键得问题 我想要这些遍历出来得bat文件一起执行 或者是隔一会顺序执行
但是要按照上面得代码得话 就会等第一个完全执行完了才会执行第二个 请问怎么解决?
[ 本帖最后由 zca7 于 2007-1-17 20:05 编辑 ] |
|