Mit PowerShell prüfen, ob Datei von HEUTE
PowerShell kann mit einem ganz einfachen Weg prüfen, ob eine Datei von heute stammt, oder nicht. Hierzu verwendet man das Attribut Änderungsdatum, welches in PowerShell mit LastWriteTime
angesprochen wird. Am Besten kombiniert man das mit einer IF-Abfrage, ob die Datei vom aktuellen Tag stammt und wenn ja, was dann passiert.
Prüfen, ob eine Datei vom aktuellen Tag (heute) stammt mit PowerShell
Mit PowerShell ist es ganz einfach Attribute von Dateien auslesen zu lassen. Um nun zu überprüfen, ob eine bestimmte Datei vom heutigen Tag stammt, also vom aktuellen Tag, verwendet man das Änderungsdatum der Datei. In PowerShell wird dieses Datum über das Atribut LastWriteTime
angesprochen. Außerdem benötigt man natürlich das aktuelle Datum, welches man mit (Get-Date).date
auslesen lässt. Der PowerShell Operator -gt
überprüft nun, ob die LastWriteTime größer ist als die des ausgelesenen Datums. Denn das aktuelle Datum wird mit der Uhrzeit 00:00 Uhr ausgegeben.
#Quell-Pfadangabe $sourcedir = "L:\Taetigkeitserfassung\TE\data\sql" #fuer jede datei im ordner Get-ChildItem $sourcedir | ForEach-Object { # #ueberpruefen ob datei von heute, wenn ja ausfuehren if($_.LastWriteTime -gt (Get-Date).date){ write-host "Datei von HEUTE:" $_.BaseName } else { write-host "Datei NICHT von HEUTE:" $_.BaseName } }
Als Ausgabe wird lediglich die Datei “TESTDATEI” als Datei von HEUTE ausgegeben. Das ist auch korrekt so, wie man im Screenshot des Ordners oben erkennen kann, da diese die einzige Datei ist, welche vom aktuellen Tag stammt.
Möchte man lediglich die Dateien des aktuellen Tages in einer Variable haben, so kann man das ganze auch ohne IF-Statement realisieren, in einer einzelnen Zeile.
#Quell-Pfadangabe $sourcedir = "L:\Taetigkeitserfassung\TE\data\sql" $filenames = Get-ChildItem $sourcedir | Where-Object {$_.LastWriteTime -gt (Get-Date).date}
Somit werden die zutreffenden Dateien in die Variable $filenames geschrieben und man kann die Dateien des aktuellen Tages weiter verarbeiten mit PowerShell.