Jump to content

Powershell Dateien zwischen 2 Daten Löschen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Servus,

 

sorry für die Schlechte Überschrift ich hoffe ihr könnte mit helfen.

 

Folgendes Szenario:

 

Wir haben die 14.6 und haben in einem Ordner folgende Dateien

1.6   Log1.pdf

2.6   log1.txt

3.6   log2.txt

4.6   log3.txt

5.6   log2.pdf

6.6   log4.txt

7.6   log5.txt

8.6   log3.pdf

9.6   log6.txt

10.6 log7.txt

11.6 log8.txt

12.6 log9.txt

13.6 log10.txt

14.6 log4.pdf

 

Ich möchte nun die PDF die älter als 7 Tage ist löschen und alle .txt Dateien bis zur nächsten PDF die noch "neu" genug ist.

 

Wie ich ein alter auslese und danach lösche ist mir bekannt:

 

Get-ChildItem -Path c:\test\test12\ | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-7)} | Remove-Item

 

allerdings hört es da bei mir leider auf.

 

Der Name vor der Datei ist Variable nur die Endung fix.

 

Hat mir jemand da eine schnelle Lösung?

 

Schöne Grüße und vielen Dank

 

 

Daniel Klein

bearbeitet von Saufi666
Geschrieben

Probiere es mal damit: 

Get-ChildItem -Path "c:\test\test12" | Where-Object {($_.LastWriteTime) -lt ((get-date).adddays(-7))} | Remove-Item

Ich vermute dir haben einfach nur die "()" im Where-Object gefehlt. Die Ausgabe kannst du kontrollieren, indem du "Remove-Item" entfernst und die Ausgabe kontrollierst.

Geschrieben

Servus,

 

ja hab den Befehl aus dem Kopf getippt :)

 

Das Problem ist aber das ich ja das alter der PDF prüfen und löschen möchte und alle Dateien auch wenn sie neuer sind bis zur nächsten "Validen" PDF ebenfalls löschen möchte.

 

Hast du dafür eine Idee

Geschrieben (bearbeitet)

Genau das macht doch das Skript. Alles was älter ist als 7 Tage wird gelöscht. Die PDF die jünger ist, z.B. 6 oder 5 Tage alt, soll ja nicht gelöscht werden.


Du musst die Datumsdifferenzen der PDF-Dateien berechnen und dann abfragen welche TXT-Dateien in dem Datumsraum liegen


...Ich möchte nun die PDF die älter als 7 Tage ist löschen...

 

Hier steht erklärt wie du einen Filter auf das Dateiformat ( TXT, PDF ) setzt: http://www.computerperformance.co.uk/powershell/powershell_file_gci_filter.htm


[ Update ]

 

Ich würde so vorgehen:

  1. Alle Dateien älter als 7 Tage löschen
  2. Datum der letzten PDF speichern. Würde ich ungefähr, um Dir auf die Sprünge zu helfen, so lösen:
    $dateLastWriteTime = $objFileList[$objFileList.Count -1].LastWriteTime
    
  3. Alle Dateien älter als das Datum der letzten PDF löschen
bearbeitet von MurdocX
Geschrieben

Servus Jan,

 

und welchen Tipp hättest du mir wenn wie oben erwähnt die .txt dateien zwischen den 2 PDFs aber neuer sind als die älteteste PDF und genau das ist der Punkt an dem ich scheitere...:/

Die Abfrage was ist die älteste PDF->was die darauffolgende->lösche alles dazwischen + die älteste PDF.

 

Viele Grüße und großes danke für deine Mühe mir das zu erklären

Geschrieben

Diese Konstellation in einem Forum zu erklären, ist etwas schwierig, möchte ich behaupten. Ich weiß nicht ob das an mir liegt, jedoch verstehe ich es auch nach dem 10x lesen nicht zu 100%.

 

Was bei mir angekommen ist:

  • Lösche die Dateien die älter sind als 7 Tage
  • Lösche auch die TXT-Dateien (Bsp. 4,5,6 Tage alt), die bis nächst jüngeren PDF-Datei ( Beispielsweise 4 Tage alt ) 

Vielleicht liegt es auch an der nicht dargelegten Anforderung, warum dies so gemacht werden muss. Oder es gibt´s auch sinnvollere Wege dies ohne Skript zu erledigen. Ich möchte dich bitten mal den genauen Grund darzulegen.

Geschrieben (bearbeitet)

Servus,

 

 

Es gibt kein Spezielles Szenario hierfür es wäre nur etwas was mich persönlich interessiert, es Resultiert aus einer Aufgabe in der Berufsschule Dateien zu löschen die älter als x Tage sind.

In dem Testprogramm legt das Programm .txt Dateien an die in PDF Dateien zusammengefasst werden. Alles PDF älter als 7 Tage sollen gelöscht werden. Was ich unschön fand ist die Tatsache der .txt Dateien die weiter gesammelt werden. Darauf beruht meine Idee die Dateien die Zusammengefasst worden sind inklusive des 7 Tage alten Logs zu löschen, woran ich allerdings scheitere aus purer Unwissenheit.

 

Hoffe das Wochenende war erholsam.

bearbeitet von Saufi666
Geschrieben

Wenn ich das jetzt richtig verstanden habe, sind die Text-Dateien dann also jeweils genauso alt wie die PDF-Dateien. Dann brauchst Du doch nur Deinen "Suchfilter" von "nur PDF" auf "PDF und TXT" erweitern und bist am Ziel!? Oder hab ich's doch noch nicht richtig verstanden?

Geschrieben (bearbeitet)

Servus,

die log Dateien können auch neuer sein, sind aber immer älter als die  Zusammenfassung dieser .txt Dateien.

 

1.6   Log1.pdf

2.6   log1.txt

3.6   log2.txt

4.6   log3.txt

 

Diese hier müssten demnach gelöscht werden

 

5.6   log2.pdf

6.6   log4.txt

7.6   log5.txt

8.6   log3.pdf

9.6   log6.txt

10.6 log7.txt

11.6 log8.txt

12.6 log9.txt

13.6 log10.txt

14.6 log4.pdf

bearbeitet von Saufi666
Geschrieben

Servus,

 

das ich nicht weis wie ich Dateien dessen alter ich nicht bestimmen kann bis zur nächsten "jungen" PDF löschen kann. Würde ich sonst hier schreiben?

 

Warum kannst Du das Alter dieser Dateien denn nicht bestimmen? Das funktioniert doch genau so wie bei den PDF-Dateien.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...