Ich hab da noch was geändert weil ich gesehen habe das
ich mich in der schleife etwas verhädert habe, trotzdem immer
noch kein erfolg.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/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;
}
Die Werte werden richtig übergeben und es werden auch richtig die Verzeichnisse gezogen und zu einem Pfad zusammen gesetzt
nur das:
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;
Funktioniert nicht richtig,... hat jemand rat ?
vielen Dank im Vorraus :benjo