Jump to content
Melde dich an, um diesen Inhalt zu abonnieren  
Saufi666

Powershell Dateien zwischen 2 Daten Löschen

Empfohlene Beiträge

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesen Inhalt zu abonnieren  

×