fekc2014
Goto Top

Datum im Format yyyyMMddhhmm in Datetime umwandeln per Powershell

Hallo,
ich muss aus einem Dateinamen ein Datum entnehmen und dieses anschließend in ein Datetime-Format bringen, damit ich es mit dem aktuellen Datum vergleichen kann, allerdings sind meine bisherigen Versuche alle kläglich gescheitert, hier mein momentaner Ansatz...
Ach ja und das Script soll Dateien älter als 14 Tage redundant aus dem Verzeichnis löschen.

gci "C:\miau\*.bak" | ?{(get-date ($_.BaseName.Split("_")[2]) -lt (Get-date).AddDays(-14))} | Remove-Item -Force;

ein Dateiname wäre zum Beispiel: Austritte_backup_201408312100.bak

und wie man erkennen kann ist das das Datum mit der Uhrzeit des Backups: 201408312100

Danke im voraus für eure Hilfe, ich weiß echt nicht mehr weiter.

Content-Key: 247962

Url: https://administrator.de/contentid/247962

Printed on: April 25, 2024 at 17:04 o'clock

Member: ITvortex
ITvortex Sep 01, 2014 at 14:37:38 (UTC)
Goto Top
Member: colinardo
Solution colinardo Sep 01, 2014, updated at Sep 02, 2014 at 09:41:32 (UTC)
Goto Top
gci "C:\miau\*.bak" | ?{([datetime]::ParseExact(($_.BaseName.Split("_")[2]),"yyyyMMddHHmm",$null)) -lt (Get-date).AddDays(-14)} | Remove-Item -Force
Grüße Uwe
Member: FEKC2014
FEKC2014 Sep 01, 2014 at 16:24:18 (UTC)
Goto Top
Genau so hatt ichs schon mal, allerdings hat das da nicht funktioniert, ich kanns blos jetz net mehr testen weil ich nicht mehr in der Firma bin.
Member: colinardo
Solution colinardo Sep 01, 2014, updated at Sep 02, 2014 at 09:48:46 (UTC)
Goto Top
dann hattest du vermutlich im Format-String die Stunden "hh" klein geschrieben, so wie es in deinem Titel steht, das wäre nämlich in deinem Fall falsch:
HH = Stunden im 24h Format
hh = Stunden im 12h Format

Ansonsten läuft das Script einwandfrei.
Member: FEKC2014
FEKC2014 Sep 02, 2014 at 09:41:23 (UTC)
Goto Top
Ja, danke hat mir sehr geholfen:D