fekc2014

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.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 247962

Url: https://administrator.de/forum/datum-im-format-yyyymmddhhmm-in-datetime-umwandeln-per-powershell-247962.html

Ausgedruckt am: 17.05.2025 um 00:05 Uhr

ITvortex
ITvortex 01.09.2014 um 16:37:38 Uhr
Goto Top
colinardo
Lösung colinardo 01.09.2014, aktualisiert am 02.09.2014 um 11:41:32 Uhr
Goto Top
gci "C:\miau\*.bak" | ?{([datetime]::ParseExact(($_.BaseName.Split("_")[2]),"yyyyMMddHHmm",$null)) -lt (Get-date).AddDays(-14)} | Remove-Item -Force
Grüße Uwe
FEKC2014
FEKC2014 01.09.2014 um 18:24:18 Uhr
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.
colinardo
Lösung colinardo 01.09.2014, aktualisiert am 02.09.2014 um 11:48:46 Uhr
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.
FEKC2014
FEKC2014 02.09.2014 um 11:41:23 Uhr
Goto Top
Ja, danke hat mir sehr geholfen:D