Hallo Leute,ich habe folgendes Problem, ich möchte mit einem Skript nach Verzeichnissen suchen die entweder leer oder > 1MB sind.
Quasi so:
#perl search_empty.pl C:\test\
Ausgabe soll so aussehen:
C:\>perl dirzeigen.pl c:\test
aaa Size: 4.828253Mb, Files: 4, folders: 0
bbb Size: 4.828253Mb, Files: 4, folders: 0
ccc Size: 4.828253Mb, Files: 4, folders: 0
ddd Size: 4.828253Mb, Files: 4, folders: 0
so das ich mir dann nur noch >1 MB ausgeben lassen kann um diese zu entfernen.
Ich habe mir hierzu was zusammen gebastelt, aber ich komme leider nicht auf die gewünschte Ausgabe. (Eigentlich nur fehler meldungen :))
#!/usr/bin//perl -w
use WIN32::Console;
use strict;
use warnings;
use File::Find::Rule ();
die 'usage: search_empty.pl *directory*'
unless 1 == @ARGV;
my @array = `dir /A:D /B @ARGV`;
for(my $i=0;$i<@array;$i++){
#print "$array[$i]";
my( $size, $files, $folders );
my $rule = File::Find::Rule-> start( @ARGV );
while( my $item= $rule->match )
{
next if $ARGV[0] eq $item;
$size+= -s $item;
-f $item and $files++;
-d $item and $folders++;
}
printf "$Size: %fMb , Files: %d, folders: %d\n"
=> $size / 1024**2, $files, $folders;
}
meine Idee war es denn $array mit dem unterverzeichnis einfach ans "@ARGV" zuhängen,
so das im @ARGV&$array --> c:\test\aaa steht und das dann in der schleife abgearbeitet wird.
Leider Kollediert meine Denkweise etwas mit Perl.
Datum: 12.05.2007-13:16
