TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24.10.2008, 21:47   #1 (permalink)
Hardware Freak
 
Benutzerbild von bigfoot996
 

Registriert seit: 14.02.2005
Beiträge: 5.162

bigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekannt

Standard [PERL/PowerShell] Dateien die alter als 30 Tage sind zippen...

Guten Abend,

ich bräuchte mal etwas Beistand bei Perl pls *g*

Und zwar bräuchte ich etwas hilfe bei einem script, was automatisch alle Dateien im vorgegebenen Ordner die älter als 30 Tage sind zippt und dabei alle älter als 60 löscht.

soweit so gut, folgendes hab ich schon:

Code:
#!c:/perl/bin/perl 
use strict; 

use warnings; 

use constant LOESCHEN => 0; 

use constant BEHALTEN => 1; 

use constant DELETED => -1; 

my $dir = \"C:/POWERSHELL/TESTSCRIPTS/\"; 

my $logFile = \"$dir/log.txt\";

my @allFiles; 

my %allFiles; 

my $lastMod; 

my $back30days = (time()-(86400*30)); 

&cd($dir);

foreach(@allFiles) { 

    $lastMod = (stat($_))[9]; 

    $allFiles{$_} = BEHALTEN if(($lastMod - $back30days) > 0 && -f $_); 

    $allFiles{$_} = LOESCHEN if(($lastMod - $back30days) < 0 && -f $_); 


    $allFiles{$_} = LOESCHEN if -d $_; 

} 

foreach(keys(%allFiles)) { 


    if ($allFiles{$_} == LOESCHEN && -f $_) { 


        $allFiles{$_} = DELETED if unlink($_); 


    } 


} 


foreach(keys(%allFiles)) { 


    if ($allFiles{$_} == LOESCHEN && -d $_) { 


        $allFiles{$_} = DELETED if rmdir($_); 


    } 

} 

&loggen(); 

sub loggen { 


    open(LOGFILE,\">$logFile\") or die $!; 


    foreach(keys(%allFiles)) { 


        print LOGFILE $_,\" --> \"; 


        print LOGFILE \"File/Directory wurde geloescht...\n\n\" if $allFiles{$_} == DELETED; 


        print LOGFILE \"File/Directory ist aktuell...\n\n\" if $allFiles{$_} == BEHALTEN; 

        print LOGFILE \"File/Directory wurde nicht geloescht...\n\n\" if $allFiles{$_} == LOESCHEN; 

    } 

    close(LOGFILE); 
} 

sub cd { 

    my $dir = shift; 

    my $base = $dir.\"/\"; 

    my @currDir;

    opendir(DIR,$dir) or die $!;

    @currDir=readdir(DIR); 

    close(DIR); 

    foreach(@currDir) { 

        next if $_ eq '.' or $_ eq '..'; 

        &cd($base.$_) if(-d $base.$_); 

        push(@allFiles,$base.$_);

    } 
}
So, jetzt raff ichs aber nich wie ich alle älter als 30 jünger als 60 zippen lassen kann und alle über 60 löschen? Vllt. kann mir da kurz einer unter die Arme greifen pls, wäre nett.

Danke und Gruß
Biggi

Geändert von bigfoot996 (05.11.2008 um 14:13 Uhr)
bigfoot996 ist offline   Mit Zitat antworten
Alt 05.11.2008, 14:12   #2 (permalink)
Hardware Freak
 
Benutzerbild von bigfoot996
 

Registriert seit: 14.02.2005
Beiträge: 5.162

bigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekannt

Standard AW: [PERL] Dateien die alter als 30 Tage sind zippen...

Is ja wahnsinn wie viele Leute hier perl scripten können naja, fakt ist dass perl sowieso nich funktionieren wird, mein script von oben geht zwar aber das is ne andere geschichte. PowerShell muss her

Muss gestehen, is scheinbar auch etwas einfacher, das ganze was ich oben in was weis ich wie vielen Zeilen gescripted hab geht mit pwoershell anscheinend in 2....

Code:
$now = get-date 
dir \"C:\POWERSHELL\TESTSCRIPTS\\" -recurse | where-object {($now - $_.LastWriteTime).Days -lt 30} | rm
So, nun tut sich aber leider nicht sonderlich viel....kann mir einer sagen wieso?^^
bigfoot996 ist offline   Mit Zitat antworten
Alt 06.11.2008, 14:36   #3 (permalink)
Hardware Freak
 
Benutzerbild von bigfoot996
 

Registriert seit: 14.02.2005
Beiträge: 5.162

bigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekanntbigfoot996 ist jedem bekannt

Standard AW: [PERL] Dateien die alter als 30 Tage sind zippen...

Code:
function New-Zip
{
    param([string]$zipfilename)
    set-content $zipfilename (\"PK\" + [char]5 + [char]6 + (\"$([char]0)\" * 18))
    (dir $zipfilename).IsReadOnly = $FALSE
}

new-zip c:\Powershell\TESTSCRIPTS\Archiv\archiv.zip

function Add-Zip
{
    param([string]$zipfilename)

    if(-not (test-path($zipfilename)))
    {
        set-content $zipfilename (\"PK\" + [char]5 + [char]6 + (\"$([char]0)\" * 18))
        (dir $zipfilename).IsReadOnly = $FALSE    
    }
    
    $shellApplication = new-object -com shell.application
    $zipPackage = $shellApplication.NameSpace($zipfilename)
    
    foreach($file in $Input) 
    { 
            $zipPackage.CopyHere($file.FullName)
            Start-sleep -milliseconds 500
    }
}

dir c:\Powershell\TESTSCRIPTS\*.* -Recurse | add-Zip c:\Powershell\TESTSCRIPTS\Archiv\archiv.zip

$now = get-date
dir C:\POWERSHELL\Testscripts\*.* -recurse | where-object {($now - $_.LastWriteTime).Days -gt 10} | remove-item
falls es jemanden interessiert...habs letztendlich selber hinbekommen, vllt. kanns ja mal irgendwer brauchen.
bigfoot996 ist offline   Mit Zitat antworten
2 Benutzer bedanken sich für den Beitrag:
tele (06.11.2008), [EID]-Mr.GiZMO (06.11.2008)
Alt 06.11.2008, 15:27   #4 (permalink)
semi-diabolisch
 
Benutzerbild von [EID]-Mr.GiZMO
 

Registriert seit: 12.09.2005
Beiträge: 2.922

[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein[EID]-Mr.GiZMO kann auf vieles stolz sein

Standard AW: [PERL] Dateien die alter als 30 Tage sind zippen...

Immer wieder danke an Leute, die dann trotz mangelnder Beteiligung an Threads die Lösung rausrücken, die sie selber gefunden haben!

Thx, biggi!
War mein Post nützlich für dich? Ein Danke oder eine Bewertung sind immer schön.
Teilnehmer der Initiative "User verbessern Qualität im Forum" | Meine Systeme

Darf ich mal bitte vorbei?! Das geht nach Kompetenz... Danke! | | | Einmal dachte ich, ich hätte Unrecht. Hab mich aber getäuscht!
"Es ist gelogen, dass Videogames Kids beeinflussen. Hätte Pacman das getan, würden wir heute durch dunkle Räume irren, Pillen fressen und elektronische Musik hören."

[EID]-Mr.GiZMO ist offline   Mit Zitat antworten
Antwort

Stichworte
alter, dateien, perl, tage, zippen, zippen..., [perl]


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MKV - Dateien in AVI-Dateien umwandeln GER_J0k3r Windows & Programme 23 30.12.2009 12:17
Verkaufe: 4 Monate alter Gamer PC & 3 Jahre alter Gamer PC Verkauf/Tausch Qualitätskomponenten michi89 Biete 7 24.01.2009 19:17
Was sind das für Dateien?? Chabrol Security & SPAM 5 14.10.2006 21:02
Dateien sind nicht von DvD zu kopieren rCSa Windows & Programme 8 24.02.2006 18:22
was sind *.sit- Dateien StefanW Windows & Programme 6 08.08.2003 20:23


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr.




Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2020, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum, Datenschutz Copyright © 1999-2015 TweakPC, Alle Rechte vorbehalten, all rights reserved