Abfrage der letzten Schreibzeit der Datei in PowerShell
- Abfrage von Dateieigenschaften in PowerShell
-
Konvertieren Sie Werte in PowerShell in
DateTime
-Formate - Finden Sie den Unterschied zwischen zwei Datumsangaben in PowerShell
Bei der Verwaltung von Dateien ist eine unserer am häufigsten zu überprüfenden Eigenschaften, wann die Datei zuletzt geändert wurde. Wir können dies bequem über den Datei-Explorer schnell überprüfen.
Es wird jedoch vorkommen, dass wir die Eigenschaften einer Datei programmgesteuert mit PowerShell überprüfen möchten.
In diesem Artikel lernen und besprechen wir, wie man die Eigenschaften einer Datei abruft, nach ihrer letzten Schreibzeit abfragt und zusätzliche Befehle ausführt, um ihr vom aktuellen Datum abweichendes Datum zu erhalten.
Abfrage von Dateieigenschaften in PowerShell
Mit Windows PowerShell können wir Dateieigenschaften einfach mit dem Befehl Get-ItemProperty
abfragen. Nehmen wir eine Datei als Beispiel.
Beispielcode:
$filepath = "C:\Temp\Login.log"
Get-ItemProperty -Path $filepath
Im obigen Beispiel haben wir die grundlegenden Eigenschaften von Login.log
abgefragt. Das obige Snippet ahmt nach, wie wir Dateieigenschaften mit dem Datei-Explorer betrachten.
Ausgang:
Directory: C:\Temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 6/7/2022 4:33 AM 4944 Login.log
Wir konnten sogar die Eigenschaft Modus
oder die Dateiberechtigungen, die Länge
oder die Dateigrösse und LastWriteTime
oder das Datum und die Uhrzeit der letzten Änderung der Datei sehen.
Für diesen Artikel wollten wir uns jetzt mehr auf die letzte Schreibzeit der Datei konzentrieren, also versuchen wir, diese Eigenschaft zu isolieren, indem wir das aktualisierte Code-Snippet unten ausführen.
Beispielcode:
$filepath = "C:\Temp\Login.log"
(Get-ItemProperty -Path $filepath -Name LastWriteTime).LastWriteTime
Ausgang:
Tuesday, June 7, 2022 4:33:02 AM
Wie wir sehen können, haben wir jetzt die letzte Änderungszeit der Datei korrekt isoliert; Wenn wir jedoch die Differenz zwischen der aktuellen Uhrzeit und dem aktuellen Datum und der vorherigen Schreibzeit der Datei erhalten wollten, würden wir aufgrund ihres unterschiedlichen Datentyps einen Fehler erhalten.
Konvertieren Sie Werte in PowerShell in DateTime
-Formate
In PowerShell haben wir einen bestimmten Datentyp namens DateTime
, der das Datums- und Zeitformat des Systems symbolisiert. Unsere vorherige Ausgabe ist im String
-Format, also konvertieren wir diese in das DateTime
-Format, indem wir den folgenden Code ausführen.
Beispielcode:
$filepath = "C:\Temp\Login.log"
$lastWrite = [DateTime](Get-ItemProperty -Path $filepath -Name LastWriteTime).LastWriteTime
Beachten Sie, dass wir einem Ergebnis den Wert DateTime
zugewiesen haben. Wir haben dies getan, um unser Skript später bequemer zu machen.
Finden Sie den Unterschied zwischen zwei Datumsangaben in PowerShell
Jetzt, da unsere Ausgabe im DateTime
-Format vorliegt, können wir bequem den Unterschied zwischen der aktuellen und der letzten Schreibzeit ermitteln, indem wir einen einfachen mathematischen Ausdruck ausführen.
Beispielcode:
$currDate = Get-Date
$currDate - $lastWrite
Ausgang:
Days : 0
Hours : 17
Minutes : 24
Seconds : 57
Milliseconds : 757
Ticks : 626977577652
TotalDays : 0.725668492652778
TotalHours : 17.4160438236667
TotalMinutes : 1044.96262942
TotalSeconds : 62697.7577652
TotalMilliseconds : 62697757.7652
Der Befehl Get-Date
fragt während der Ausführung des Befehls das aktuelle Datum und die Uhrzeit ab. Der Befehl wird mit einem DateTime
-Datentyp gespeichert, wodurch er unserem vorbereiteten letzten Schreibzeitwert ähnelt.
Bei zwei Variablen vom Datentyp DateTime
können wir die Gesamtzeit und die Differenz mit einem mathematischen Operator wie Plus (+
) und Minus (-
) ermitteln.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn