Tema: Re: Kas gali parašyti komandą?
Autorius: Laimis
Data: 2012-08-23 14:43:35
#!/usr/bin/perl

use File::Find;
use File::Basename;


my %tree = ();
my $adur = 0;

my $scandir = shift(@ARGV);
$scandir =~ s/\\/\//g;
$scandir = '.' if not $scandir;


find( { wanted => \&fproc, postprocess => \&dproc, bydepth => 1 }, $scandir);


sub fproc() {
    if (m/\.(wav|mp3)$/i) {
		my $ms = qx("C:/utils/mediainfo/mediainfo.exe" --Inform='Audio;%Duration%' "$File::Find::name");
		if (($? >>=8) != 0) {
	        die "Failed to run mediainfo on $File::Find::name";
		} 
		else {
			#print "$File::Find::name duration $ms ms\n";
			$adur += $ms/1000;
		}
    
    }

}

sub dproc() {
    my $path = $File::Find::dir . '/';
    my ($dir, $parent) = fileparse($File::Find::dir);
	
	$tree{$path}{':total:'} += $adur;
	$tree{$parent}{':total:'} += $adur;


    print "$path: $tree{$path}{':total:'} s\n";
	$adur = 0;

}