Thread Verzeichnisssuche mit einem Perlscript (4 answers)
Opened by Gast at 2007-05-12 17:04

Gast Gast
 2007-05-12 17:04
#76656 #76656
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 :))


Code: (dl )
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: 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.

Wäre sehr Dankbar fuer einen kleinen Denkanstoss
gruss benjo

View full thread Verzeichnisssuche mit einem Perlscript