Hallo Perler & Co,
weil heute Sonntag ist poste ich mal was direkt aus meiner Bastelkiste... also es ging mir darum, mit einem KLICK Dateien einer bestimmten Erweiterung (z.B.: "pl") von einem Startverzeichnis aus (z.B.: "c:") in ein Arschief zu sichern... Nuja, wenn es schon PERLSrcipten sind die ich sichern möchte, dann auch mit einem PERLScript "archive.pl". Dieses Script steht ab sofort jedem zur freien Verfügung.
Ihr könnt es benutzen, verbessern, bemeckern (ja bitte her mit Kommentaren!) oder auch kommentarlos in die Mülltonne stecken - wie auch immer: viel Spass damit.
Viele Grüße, Rolf
---schnipp---archive.pl--->
Script archiviert Dateien in eine *.tar
Geschrieben von Rolf Rost am Sonntag, 17. Oktober 1999
#####################################################################
Adminvorgaben
Startdirectory, am Ende keinen Slash, diese DIR wird duchsucht
$dir = "c:";
Sicherungsdirectory, am Ende keinen Slash, diese DIR muss es geben
$sikdir = "d:/pls";
Name des zu erstellenden Archives
$archive = "perlscripte_c";
Dateien der folgenden Erweiterung sollen gesichert werden
$ext = "pl";
#####################################################################
use Archive::Tar;
$tar = Archive::Tar->new();
&dir_sub($dir); # Funktion scannt das Verzeichnis /sub
&rapport; # Rapport, was gemacht
$i = 0; # Zählvariable
sub dir_sub {
my $dir = shift;
my $path;
unless (opendir(DIR, $dir)) {
closedir(DIR);
return;
}
foreach (readdir(DIR)) {
next if $_ eq '.' $_ eq '..';
$path = "$dir/$_";
if (-d $path) { # hurra ein Verzeichnis...
&dir_sub($path);# ... rufe diese Funktion erneut
}
elsif (-f _) { # hurra eine Datei...
if(/.$ext/i){ # Nur meine Erweiterung
$tar->add_files($path); # ab ins Archiv
$i++; # Zähler erhöhen
}
}
}
closedir(DIR);
}
$tar->write($sikdir."/".$archive.".tar"); # Archive schreiben
Ausgabe des Rapports
sub rapport{
print "Es wurden $i Dateien der Erweiterung '$ext' in das folgende Archiv gesichert: '$sikdir/$archive.tar'\n";
}
<---schnapp---<