Zum Inhalt wechseln


Foto

Powershell Dateien zwischen 2 Daten Löschen


  • Bitte melde dich an um zu Antworten
15 Antworten in diesem Thema

#1 Saufi666

Saufi666

    Newbie

  • 8 Beiträge

 

Geschrieben 13. Juli 2017 - 14:37

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, 13. Juli 2017 - 14:38.


#2 MurdocX

MurdocX

    Board Veteran

  • 507 Beiträge

 

Geschrieben 13. Juli 2017 - 14:43

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.


Mit freundlicher Unterstützung
Jan


#3 Saufi666

Saufi666

    Newbie

  • 8 Beiträge

 

Geschrieben 14. Juli 2017 - 06:37

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



#4 MurdocX

MurdocX

    Board Veteran

  • 507 Beiträge

 

Geschrieben 15. Juli 2017 - 08:02

Was ist eine "validen"-PDF ?

Den Sinn verstehe ich nicht ganz aus deinem Text


Mit freundlicher Unterstützung
Jan


#5 Saufi666

Saufi666

    Newbie

  • 8 Beiträge

 

Geschrieben 15. Juli 2017 - 08:31

Servus Jan,

 

die nächste PDF die keine 7 Tage alt ist.

 

Und genau bei dem liegt mein Problem.



#6 MurdocX

MurdocX

    Board Veteran

  • 507 Beiträge

 

Geschrieben 15. Juli 2017 - 10:09

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.computerp..._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, 15. Juli 2017 - 10:18.

Mit freundlicher Unterstützung
Jan


#7 Saufi666

Saufi666

    Newbie

  • 8 Beiträge

 

Geschrieben 16. Juli 2017 - 06:51

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



#8 MurdocX

MurdocX

    Board Veteran

  • 507 Beiträge

 

Geschrieben 16. Juli 2017 - 09:10

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.


Mit freundlicher Unterstützung
Jan


#9 Saufi666

Saufi666

    Newbie

  • 8 Beiträge

 

Geschrieben 17. Juli 2017 - 08:08

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, 17. Juli 2017 - 08:09.


#10 BOfH_666

BOfH_666

    Junior Member

  • 128 Beiträge

 

Geschrieben 17. Juli 2017 - 09:58

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?


live long and prosper!

PS:> (79,108,97,102|%{[char]$_})-join''

#11 Saufi666

Saufi666

    Newbie

  • 8 Beiträge

 

Geschrieben 17. Juli 2017 - 10:19

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, 17. Juli 2017 - 10:21.


#12 BOfH_666

BOfH_666

    Junior Member

  • 128 Beiträge

 

Geschrieben 17. Juli 2017 - 11:22

Servus,

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

 

... naja .... und wo ist da jetzt das Problem?


live long and prosper!

PS:> (79,108,97,102|%{[char]$_})-join''

#13 Saufi666

Saufi666

    Newbie

  • 8 Beiträge

 

Geschrieben 17. Juli 2017 - 14:02

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?



#14 BOfH_666

BOfH_666

    Junior Member

  • 128 Beiträge

 

Geschrieben 17. Juli 2017 - 14:25

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.


live long and prosper!

PS:> (79,108,97,102|%{[char]$_})-join''

#15 MurdocX

MurdocX

    Board Veteran

  • 507 Beiträge

 

Geschrieben 17. Juli 2017 - 14:45

Im Prinzip kannst du genau das anwenden was ich oben geschrieben habe.


Mit freundlicher Unterstützung
Jan