78632
Goto Top

Datumsmanipulationen, einfach gemacht

Ein etwas unkonventioneller Weg, mit Datumsangaben (z. B. im Dateisystem) zu arbeiten

Als User hat man ja auf den eigenen Registry-Zweig in der Regel Zugriff. Also warum nicht temporär ein festes, für Manipulationen gültiges Format vorgeben?

Beispielcode für Batch-Verarbeitung:

@echo off & setlocal

:: Aktuell verwendetes Datumsformat holen und in Variable sichern
for /f "tokens=3" %%d in ('reg query "hkcu\control panel\international" /v sShortDate') do set "dfmt=%%d"  
echo %dfmt%

:: Datumsformat falls erforderlich temporär auf "normalen" Wert ändern 
if not "%dfmt%"=="dd.MM.yy" reg add "hkcu\control panel\international" /v sShortDate /t REG_SZ /d dd.MM.yy /f  

::Aktionen durchführen, Variable "Datum" aus Dateidatum erhalten, z. B. mit % ~ti 

Set Datum=15.05.09
set FDatum=%Datum:~6,2%%Datum:~3,2%%Datum:~0,2%
Echo %fdatum%
pause
:: ergibt als Variable FDatum ein sortier- und vergleichbares Format, nämlich 090515
:: Aktionen durchführen

pause

:: Datumsformat erforderlichenfalls auf gespeicherten Wert zurücksetzen
if not "%dfmt%"=="dd.MM.yy" reg add "hkcu\control panel\international" /v sShortDate /t REG_SZ /d %dfmt% /f  

Content-Key: 116197

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

Ausgedruckt am: 19.03.2024 um 11:03 Uhr

Mitglied: 77559
77559 15.05.2009 um 21:04:02 Uhr
Goto Top
Hallo blablanick,
ich finde es nicht so prickelnd.

Wenn du schon die Registry liest, hast du ja auch alle Informationen die du brauchst, um die Ausgabe von %Date% korrekt zu interpretieren.
Warum also dann noch schreiben?

Mein Motto dabei ist so sicher wie möglich vorzugehen und Schreibzugriffe auf die Registry,
die in dem Moment Systemweit Wirkung zeigen, würde ich mit sehr überlegen.

Gruß
LotPings
Mitglied: 78632
78632 15.05.2009 um 21:28:51 Uhr
Goto Top
Ob prickelnd oder nicht, bleibt jedem selbst überlassen. Es ist EINE Möglichkeit.

Mein Motto ist, keine ellenlange Umrechnung zu veranstalten, sondern die einfachste und zugleich wirkungsvollste Lösung zu bevorzugen.

Ich sehe darin auch keinerlei Risiko, da die tatsächlich verwendeten Zeiten im Filesystem real in einem 64Bit-Wert abgespeichert und genutzt werden und sich durch das Ausgabeformat der Darstellung daran absolut nichts ändert.

Allerdings habe ich jetzt das Beispiel so geändert, dass die Notwendigkeit des Änderns in der Registry überprüft wird und die Änderung nur erfolgt, falls sich das Datumsformat nicht bereits im "normalen" Zustand befindet. face-wink