christof68
Goto Top

Datum "Letzte Speicherung"

Hallo Helfer/Innen,

ich benötige zum Vergleich zweier Dateien den Wert "Letzte Speicherung".

$aenderungsdatum1 = (Get-Item $datei1).LastWriteTime
Hier wird mir das Änderungsdatum unter Eigenschaften / Allgemein ausgegeben.

Ich benötige aber den Datumswert "Letzte Speicherung" unter Details / Ursprung im Eigenschaftsfenster.


Viele Grüße
Christof

Content-ID: 81468149849

Url: https://administrator.de/forum/datum-letzte-speicherung-81468149849.html

Ausgedruckt am: 09.04.2025 um 10:04 Uhr

erikro
erikro 09.02.2024 aktualisiert um 11:31:41 Uhr
Goto Top
Moin,

das steht doch drin:

eigenschaften
eigenschaften2


Liebe Grüße

Erik
colinardo
Lösung colinardo 09.02.2024 aktualisiert um 13:32:30 Uhr
Goto Top
Servus Christof, willkommen auf Administrator.de!

An die genannte Eigenschaft kommst du folgendermaßen:
$file = Get-Item "E:\document.docx"  
$documentLastSaved = (New-Object -com Shell.Application).NameSpace($file.DirectoryName).ParseName($file.Name).ExtendedProperty("System.Document.DateSaved").ToLocalTime()  
$documentLastSaved
System.Document.DateSaved

screenshot

Das Verfahren um an die erweiterten Eigenschaften von Dateien zu kommen, hatte ich bereits hier einmal erläutert
Erweiterte Dateieigenschaften mit Powershell-Funktion abfragen

Grüße Uwe
Christof68
Christof68 09.02.2024 um 12:56:48 Uhr
Goto Top
Hallo Erik,

im Eigenschaftsfeld finde ich es aber wie kann ich das Feld "letzte Speicherung" abfragen?

1

geändert = LastWriteTime

2

letzte Speicherung = ?

Grüße Christof
colinardo
colinardo 09.02.2024 aktualisiert um 13:16:44 Uhr
Goto Top
Zitat von @Christof68:
im Eigenschaftsfeld finde ich es aber wie kann ich das Feld "letzte Speicherung" abfragen?
Meinen Post dazu hast du übersehen?
Christof68
Christof68 09.02.2024 um 13:22:41 Uhr
Goto Top
Nein, versuche es umzusetzen ... bin noch nicht so fit bzgl. Powershell
Christof68
Christof68 09.02.2024 um 14:04:11 Uhr
Goto Top
Hallo Uwe,

wie bereits angedeutet ... ich bin Anfänger

$file = Get-Item "C:\Temp\eigenschaften.docx"    
$documentLastSaved = (New-Object -com Shell.Application).NameSpace($file.DirectoryName).ParseName($file.Name).ExtendedProperty("System.Document.DateSaved").ToLocalTime()    
$documentLastSaved

Fehlermeldung:

Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In C:\batch\vergleich.ps1:2 Zeichen:1
+ $documentLastSaved = (New-Object -com Shell.Application).NameSpace($f ...

Was mache ich noch falsch?

Grüße Christof
colinardo
colinardo 09.02.2024 aktualisiert um 14:17:04 Uhr
Goto Top
Welches Betriebssystem nutzt du?

Bekommst du bei der folgenden Variante ein Ergebnis auf deinem System
$file = Get-Item "C:\Temp\eigenschaften.docx"  
$documentLastSaved = (New-Object -com Shell.Application).NameSpace($file.DirectoryName).ParseName($file.Name).ExtendedProperty("{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 13")  
if ($documentLastSaved){
    $documentLastSaved.ToLocalTime()
}else{
    write-error "Property unavailable on your system!"  
}
ein Ergebnis?
Christof68
Christof68 09.02.2024 um 14:20:46 Uhr
Goto Top
gleicher Fehler

Windows 10 Education
colinardo
colinardo 09.02.2024 aktualisiert um 14:31:06 Uhr
Goto Top
Kommt "Property unavailable on your system!"? Oder der NULL Fehler von oben?

Wenn der NULL Fehler kommt lass mal das .ToLocalTime() weg.

Klappt hier von Windows 7 bis 11 einwandfrei.

screenshot
Christof68
Christof68 09.02.2024 um 14:42:06 Uhr
Goto Top
$file = Get-Item "C:\Temp\test.xlsx"    
$lastwritetime = (New-Object -com Shell.Application).NameSpace($file.DirectoryName).ParseName($file.Name).ExtendedProperty("System.Document.DateSaved").ToLocalTime()  
$lastwritetime

mit lastwritetime funktioniert es

Windows PowerShell
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Lernen Sie das neue plattformübergreifende PowerShell kennen – https://aka.ms/pscore6


Freitag, 5. Juni 2015 20:19:39


PS C:\WINDOWS\System32\WindowsPowerShell\v1.0>

Ich werde das in der nächsten Woche einmal auf einem anderen Notebook bzw. Server versuchen.
colinardo
colinardo 09.02.2024 aktualisiert um 15:05:42 Uhr
Goto Top
Dann hast du irgendwo einen Tippfehler in der Variablen bei dir, oder der Pfad zur Datei war fehlerhaft, oder die Eigenschaft ist bei dem Dokument null und nicht gesetzt.

"C:\Temp\eigenschaften.docx"
zu
"C:\Temp\test.xlsx"
Christof68
Christof68 09.02.2024 um 15:18:54 Uhr
Goto Top
Das war´s ...
Habe alles nochmals geprüft.

Danke für deine Hilfe und Geduld

Grüße Christof
Christof68
Christof68 09.02.2024 um 16:05:28 Uhr
Goto Top
Noch eine Frage

Wie kann ich erreichen, dass nur das Datum "lastwriteDate" (ohne Uhrzeit) ausgegeben wird?
colinardo
colinardo 09.02.2024 aktualisiert um 16:18:01 Uhr
Goto Top
Zitat von @Christof68:

Noch eine Frage

Wie kann ich erreichen, dass nur das Datum "lastwriteDate" (ohne Uhrzeit) ausgegeben wird?

Nach current locale Standard
$lastwritetime.toString('d')  
bzw. manuell über die Standard Formatter Strings
$lastwritetime.toString('dd.MM.yyyy')  

Verfügbare Methoden und Eigenschaften des DateTime Objektes
https://learn.microsoft.com/de-de/dotnet/api/system.datetime?view=net-8. ...