none
Dateien eines bestimmten Typs älter als 3 Tage in beliebigen Unterverzeichnissen automatisch löschen? RRS feed

  • Frage

  • Hallo, hat jemand ein fertiges und individuell leicht anpassbares Powershell Script mit dem ich Dateien eines bestimmten Typs, die in mehreren bestimmten Ordnern und dort in diesen Ordnern aber in beliebig vielen Unterverzeichnissen vorkommen und älter als 3 Tage sind automatisch löschen lassen kann? Die Namen der Unterverzeichnisse kann ich nicht vorherbestimmen, nur die Pfade zu den Hauptordnern sind fix.

    Ich habe das Forum versucht darauf hin zu durchsuchen aber bisher nichts gefunden was meine Anforderungen erfüllt. Bedanke mich für Anleitungen und Hilfen.

    Mittwoch, 16. März 2011 10:42

Antworten

  • Hallo,

    $Dirlist = "C:\test1","C:\test2" # usw.
    
    foreach ($dir in $Dirlist) {
     dir $dir -recurse -include *.txt,*.log | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-3)} | Out-Host 
    }
    

    das Script sucht in allen Verzeichnissen in $dirlist und den jeweiligen Unterverzeichnissen nach Dateien mit *.txt und *.log, Nach Bedarf anpassen. Wenn das Ergebnis wie gewünscht ist, ersetzte "Out-Host" durch "Remove-Item" um die Löschung wirklich durchzuführen.

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    Mittwoch, 16. März 2011 11:32
    Moderator

Alle Antworten

  • Hallo,

    $Dirlist = "C:\test1","C:\test2" # usw.
    
    foreach ($dir in $Dirlist) {
     dir $dir -recurse -include *.txt,*.log | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-3)} | Out-Host 
    }
    

    das Script sucht in allen Verzeichnissen in $dirlist und den jeweiligen Unterverzeichnissen nach Dateien mit *.txt und *.log, Nach Bedarf anpassen. Wenn das Ergebnis wie gewünscht ist, ersetzte "Out-Host" durch "Remove-Item" um die Löschung wirklich durchzuführen.

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    Mittwoch, 16. März 2011 11:32
    Moderator
  • Hallo Denniver,

    so wäre es noch einfacher:

     
    $dirlist = "C:\test1","C:\test2"
    dir $dirlist -recurse -include *.txt,*.log | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-3)} | Out-Host 
    
    

     Da spart man sich die Schleife.

    Viele Grüße

    Frank

     


    -- Frank Röder MVP Directory Services blog.iteach-online.de --
    Mittwoch, 16. März 2011 12:32
  • Du hast recht. Danke für die Ergänzung. :)

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    Mittwoch, 16. März 2011 14:16
    Moderator
  • Hallo Denniver und Frank,

    herzlichen Dank für Eure schnelle Hilfe. Funktioniert wunderbar!

    Grüße Heribert.

     

    Mittwoch, 16. März 2011 16:05