Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

mit perl komplettes Verzeichniss löschen (auch wenn noch dateien drin sind) unter xp

Mitglied: xplayer2005

xplayer2005 (Level 1) - Jetzt verbinden

07.11.2006, aktualisiert 14.11.2006, 10307 Aufrufe, 8 Kommentare

hallo,

gibt es einen perl Befehl um verzeichnisse komplett inc. untervereichnissen zu löschen.

nenn nein: wie kann ich das umsetzen?

bedanke mich im vorraus
Mitglied: 6890
07.11.2006 um 19:25 Uhr
ja hallo,

dafür gibt es das modul File::Remove, kannste dir ja mal anschauen:
http://search.cpan.org/~adamk/File-Remove-0.34/lib/File/Remove.pm

mfg godlike P
Bitte warten ..
Mitglied: 6890
07.11.2006 um 19:35 Uhr
falls du dir keine module installieren kannst, so funktionierts auch :
01.
#!/usr/local/bin/perl
02.

03.
use strict;
04.

05.
my $dir="test";
06.
opendir(DIR,$dir)or die "$!";
07.
my @remove = readdir(DIR);
08.
close(DIR);
09.
foreach(@remove){
10.
unlink("$dir/$_");
11.
}
12.
rmdir($dir) or die $!;
mfg godlike P
Bitte warten ..
Mitglied: Biber
07.11.2006 um 19:38 Uhr
@Godlike
Das gefällt mir... nicht so langatmig wie Batch...

5 Stars mit auf den Weg.

Gruß
Biber
Bitte warten ..
Mitglied: 6890
07.11.2006 um 20:07 Uhr
@godlike
Das gefällt mir... nicht so langatmig
wie Batch...

5 Stars mit auf den Weg.

Gruß
Biber

danke danke...
dafür kann ich leider gar kein batch
wir könn ja mal so wechselseitiges training machen batch <==> perl

mfg
Bitte warten ..
Mitglied: xplayer2005
08.11.2006 um 09:57 Uhr
ich bekomm da die meldung...

Permission denied at C:/Documents and Settings/d048045/My Documents/_eclipseWorkspace/test2/225.pl line 15.


line15: rmdir($delpath) or die $!;



sorry hab vergessen zu sagen: ich wil das skript auf xp unde server 2003 ausführen..
Bitte warten ..
Mitglied: 6890
08.11.2006 um 15:27 Uhr
ich bekomm da die meldung...

Permission denied at C:/Documents and
Settings/d048045/My
Documents/_eclipseWorkspace/test2/225.pl line
15.

als welcher benutzer führst du das script aus??
denn das heisst das dir das löschen mangels rechten verwehrt wurde!!

mfg godlike P
Bitte warten ..
Mitglied: 6890
09.11.2006 um 20:56 Uhr
abend,

hab mal ein script geschrieben welches
ordner für ordner durchgeht und alte
dateien und ordner löscht, kommentiert
ist es auch:
01.
#!c:/perl/bin/perl
02.

03.
# das sind module für strictes programmieren und warnungen
04.
use strict;
05.
use warnings;
06.

07.
# ein paar konstanten
08.
use constant LOESCHEN => 0;
09.
use constant BEHALTEN => 1;
10.
use constant DELETED => -1;
11.

12.
# dein ordner wo drinne gelöscht werden soll
13.
my $dir = "D:/SCRIPTE/ADMINISTRATOR/test1";
14.

15.
# das log file
16.
my $logFile = "$dir/log.txt";
17.
my @allFiles;
18.
my %allFiles;
19.
my $lastMod;
20.

21.
# zeitpunkt minus 5 tage also alt die dateien und ordner höchstens sein dürfen
22.
my $back5days = (time()-(86400*5));
23.

24.
# hier springt er in die sub cd
25.
&cd($dir);
26.

27.
# alle dateien durchgehen und schauen ob sie älter als 5 tage sind
28.
# ordner werden automatisch auf löschen gesetzt
29.
foreach(@allFiles) {
30.
    $lastMod = (stat($_))[9];
31.
    $allFiles{$_} = BEHALTEN if(($lastMod - $back5days) > 0 && -f $_);
32.
    $allFiles{$_} = LOESCHEN if(($lastMod - $back5days) < 0 && -f $_);
33.
    $allFiles{$_} = LOESCHEN if -d $_;
34.
}
35.

36.
# die dateien löschen die älter als 5 tage sind
37.
foreach(keys(%allFiles)) {
38.
    if ($allFiles{$_} == LOESCHEN && -f $_) {
39.
        $allFiles{$_} = DELETED if unlink($_);
40.
    }
41.
}
42.

43.
# die ordner löschen die leer sind
44.
# rmdir löscht nur leere ordner
45.
foreach(keys(%allFiles)) {
46.
    if ($allFiles{$_} == LOESCHEN && -d $_) {
47.
        $allFiles{$_} = DELETED if rmdir($_);
48.
    }
49.
}
50.

51.
# den ganzen spass in ne log datei schreiben
52.
&loggen();
53.

54.
# logdatei schreiben
55.
sub loggen {
56.
    open(LOGFILE,">$logFile") or die $!;
57.
    foreach(keys(%allFiles)) {
58.
        print LOGFILE $_," --> ";
59.
        print LOGFILE "File/Directory wurde geloescht...\n\n" if $allFiles{$_} == DELETED;
60.
        print LOGFILE "File/Directory ist aktuell...\n\n" if $allFiles{$_} == BEHALTEN;
61.
        print LOGFILE "File/Directory wurde nicht geloescht...\n\n" if $allFiles{$_} == LOESCHEN;
62.
    }
63.
    close(LOGFILE);
64.
}
65.

66.
# diese recursive funktion geht in jeden ordner liest den inhalt aus und
67.
# falls im inhalt ein ordner ist geht er auch in diesen und soweiter (recursiv halt)
68.
# alle pfade von dateien und ordnern werden in ein array geschrieben damit
69.
# man sie später löschen oder behalten kann
70.
sub cd {
71.
    my $dir = shift;
72.
    my $base = $dir."/";
73.
    my @currDir;
74.
    opendir(DIR,$dir) or die $!;
75.
    @currDir=readdir(DIR);
76.
    close(DIR);
77.
    foreach(@currDir) {
78.
        next if $_ eq '.' or $_ eq '..';
79.
        &cd($base.$_) if(-d $base.$_);
80.
        push(@allFiles,$base.$_);
81.
    }
82.
}

falls fragen sind bitte melden
mfg godlike P
Bitte warten ..
Mitglied: xplayer2005
14.11.2006 um 11:10 Uhr
Danke bis hier her..

allerdings löcht es manchmal nicht alle Unterordner - ab und an bleiben welche stehn.. ich weis aber nicht wiso


hinweis falls jemand das script auch verwenden möchte:

Damit die Logfile funnktioniert muss hier ein > dazu - damit alles angehängt werde kannn

open(LOGFILE,">>$logFile") or die $!;
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Verzeichniss überwachen Datei kopieren und umbenennen

gelöst Frage von fischle63Batch & Shell6 Kommentare

Hallo, Habe folgendes Problem: In einem Verzeichniss sind Dateien mit dem Suffix ".nd" enthalten. Bsp. "00000010.nd" Ich brauche eine ...

Perl

Mit Perl aus einer Datei teilidentische Zeilen löschen

gelöst Frage von JedujaPerl5 Kommentare

Ausgangsbasis Dateizeilen: 2016-05-23 00:00 2 Ende 2016-05-23 00:00 2 Start 2016-05-23 06:46 1 Ende 2016-05-23 06:48 1 Start 2016-05-23 ...

Perl

Perl Scripting routen

gelöst Frage von fredo788Perl13 Kommentare

Hallo, ich habe Probleme mit einem Perl Script. Anmerken muss ich, dass ich sehr unerfahren mit Perl bin. Auf ...

Perl

Perl Text Datei in Excel einlesen Spalte als Datum formatieren

Frage von bluepythonPerl

Hallo, in einem Perl-Script starte ich eine Datenbankabfrage, das Ergebniss wird mir in eine Textdatei geschrieben. Diese Textdatei wird ...

Neue Wissensbeiträge
Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Tipp von ChriBo vor 13 StundenFirewall

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 1 TagInternet

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 1 TagGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 1 TagGoogle Android2 Kommentare

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Heiß diskutierte Inhalte
Linux Userverwaltung
LogIn Versuche beschränken auf EINEN Versuch
gelöst Frage von GarroshLinux Userverwaltung22 Kommentare

Folgendes Problem Ich habe einen dezidierten Server beim Hoster gemietet, installiert ist Ubuntu 18.04.2 LTS‬ und als Webinterface Plesk. ...

Internet
Aktuell HP-Support-Seite kaputt?
gelöst Frage von LochkartenstanzerInternet12 Kommentare

Hallo Kollegen, Weiß einer von euch, seit wann die HP-Support-Seite kaputt ist? ) Wollte heute morgen Druckertreiber runterladen und ...

Ubuntu
Exchange Alternative auf Ubuntu
Frage von TELLOUbuntu11 Kommentare

Hi NG, wir müssen für unsere Kleine Firma (5 User) das Email / Kalendersystem neu einrichten. Ich könnte jetzt ...

Batch & Shell
Tasklist überprüfen
Frage von IleiesBatch & Shell10 Kommentare

Hallo zusammen, Wie kann ich in Batch überprüfen, ob gerade der Prozess "Skype.exe" ausgeführt wird? Also nicht so dass ...