knuefi
Goto Top

Löschung nach X Stunden

Hallo

ich würde gerne in einen Ordner Dateien älter 15 Stunden per Powershell löschen, was mache ich verkehrt?. Es löscht einfach nicht face-sad

gci -Path "D:/Hier Löschen" -Recurse -Force | ?{!$_.PSIsContainer -and $_.CreationTime -lt (Get-Date).AddHours(-15)} | Remove-Item -Force  

Content-ID: 377043

Url: https://administrator.de/forum/loeschung-nach-x-stunden-377043.html

Ausgedruckt am: 22.12.2024 um 15:12 Uhr

colinardo
colinardo 14.06.2018 aktualisiert um 20:23:54 Uhr
Goto Top
Es löscht einfach nicht
Joa, kürzer geht's dann auch wieder mal nicht ...

  • Die Frage ist eher was bekommst du für eine Fehlermeldung bzw. welche Dateien werden dir angezeigt wenn du das "Remove-Item -Force" in der Pipeline erst einmal weg lässt?
  • Wie sehen die Zugriffsrechte auf den Ordner aus?
  • Erstelldatum und Zeit wurden exakt überprüft?

Die Syntax ist soweit erst mal i.O.

Beachte das bei Get-ChildItem und Verwendung des -Path Parameters spezielle Zeichen wie Eckige Klammern etc. zum Filtern mehrerer Ordner interpretiert werden könnten. Wenn der Pfad rein als String interpretiert werden soll nutze stattdessen -LiteralPath dafür.

Grüße Uwe
Knuefi
Knuefi 14.06.2018 aktualisiert um 20:35:26 Uhr
Goto Top
Hallo Uwe,

ich bekomme leider keine Fehlermeldung, es läuft durch aber die Dateien älter 15 Stunden bleiben erhalten. Ich habe zur Sicherheit es mal in einen lokalen Ordner versucht, leider das selbe Ergebnis.
Ich habe es mal mit den selben Dateien im Ordner, aber in Code älter als 1 Tag
 
AddDate(-1)
ausprobiert und siehe da, es werde alle Dateien älter 1 Tag gelöscht. Das kann ich nicht nachvollziehen.

Erstelldatum und Zeit wurden exakt überprüft
Was meinst du damit?
colinardo
Lösung colinardo 14.06.2018 aktualisiert um 21:30:58 Uhr
Goto Top
Zitat von @Knuefi:

Hallo Uwe,

ich bekomme leider keine Fehlermeldung, es läuft durch aber die Dateien älter 15 Stunden bleiben erhalten.
Beantworte bitte meine Frage im ersten Punkt.
"welche Dateien werden dir angezeigt wenn du das "Remove-Item -Force" in der Pipeline erst einmal weg lässt?"
Es bringt dir nämlich nichts wenn du nicht vorher siehst was der Filter ergibt.
Ich habe zur Sicherheit es mal in einen lokalen Ordner versucht, leider das selbe Ergebnis.
Dann sind die Dateien nicht älter als 15 Stunden. Bitte beachte das Erstelldatum und LastWriteTime nicht das selbe sind und natürlich unterschiedlich sein können, Nutze das korrekte Datum!
Ich habe es mal mit den selben Dateien im Ordner, aber in Code älter als 1 Tag
 
> AddDate(-1)
ausprobiert und siehe da, es werde alle Dateien älter 1 Tag gelöscht. Das kann ich nicht nachvollziehen.
Du meinst wohl AddDays(-1)
Du hast zu 99% einen Interpretations- /Flüchtigkeitsfehler.
Erstelldatum und Zeit wurden exakt überprüft
Was meinst du damit?
Na das du das Erstelldatum das du hier ja abfragst kontrolliert hast und nicht fälschlicherweise das Änderungsdatum welches standardmäßig im Explorer angezeigt wird.

Btw
"D:/Hier Löschen"
Backslash ist Windows best friend, macht aber der Powershell hier jetzt nichts aus.
Knuefi
Knuefi 14.06.2018 aktualisiert um 21:33:33 Uhr
Goto Top
Danke für den Tip
LastWriteTime
Da war der Fehler
joehuaba
joehuaba 15.06.2018 um 10:28:50 Uhr
Goto Top
Hallo @Knuefi,

ist zwar anscheinend schon gelöst, aber hier noch ein Ansatz für Dateien und Ordner:

Dateien löschen, die älter als x Tage
Ordner löschen, die älter als x Tage


Gruß joe