#!/usr/bin//perl -w use WIN32::Console; use strict; use warnings; use File::Find::Rule(); die 'usage: dir_z_size.pl *directory*' unless 1 == @ARGV; my @array = `dir /A:D /B @ARGV`; for(my $i=0;$i<@array;$i++){ my( $size, $files, $folders ); my $path = "$ARGV[0]"."$array[$i]"; print "$path"; my $rule = File::Find::Rule->start( $path ); while( my $item = $rule->match ) { next if $path eq $item; $size+= -s $item; -f $item and $files++; -d $item and $folders++; } printf "$path: $size: %fMb, Files: %d, folders: %d\n" => $size / 1024**2, $files, $folders; }