Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Datumsmanipulationen, einfach gemacht

Tipp Entwicklung Batch & Shell

Mitglied: 78632

78632 (Level 1)

15.05.2009, aktualisiert 16.05.2009, 6396 Aufrufe, 2 Kommentare

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:

01.
@echo off & setlocal 
02.
 
03.
:: Aktuell verwendetes Datumsformat holen und in Variable sichern 
04.
for /f "tokens=3" %%d in ('reg query "hkcu\control panel\international" /v sShortDate') do set "dfmt=%%d" 
05.
echo %dfmt% 
06.
 
07.
:: Datumsformat falls erforderlich temporär auf "normalen" Wert ändern 
08.
if not "%dfmt%"=="dd.MM.yy" reg add "hkcu\control panel\international" /v sShortDate /t REG_SZ /d dd.MM.yy /f 
09.
 
10.
::Aktionen durchführen, Variable "Datum" aus Dateidatum erhalten, z. B. mit % ~ti 
11.
 
12.
Set Datum=15.05.09 
13.
set FDatum=%Datum:~6,2%%Datum:~3,2%%Datum:~0,2% 
14.
Echo %fdatum% 
15.
pause 
16.
:: ergibt als Variable FDatum ein sortier- und vergleichbares Format, nämlich 090515 
17.
:: Aktionen durchführen 
18.
 
19.
pause 
20.
 
21.
:: Datumsformat erforderlichenfalls auf gespeicherten Wert zurücksetzen 
22.
if not "%dfmt%"=="dd.MM.yy" reg add "hkcu\control panel\international" /v sShortDate /t REG_SZ /d %dfmt% /f 
23.
 
Mitglied: LotPings
15.05.2009 um 21:04 Uhr
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
Bitte warten ..
Mitglied: 78632
15.05.2009 um 21:28 Uhr
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.
Bitte warten ..
Ähnliche Inhalte
Backup
gelöst Backup-Replikation einfach für Privat (7)

Frage von UnbekannterNR1 zum Thema Backup ...

CSS
CSS Background-image erscheint einfach nicht (3)

Frage von MyApps2GO.de zum Thema CSS ...

Netzwerkgrundlagen
VPN lässt sich einfach nicht einrichten (3)

Frage von JollyJumper83 zum Thema Netzwerkgrundlagen ...

LAN, WAN, Wireless
Netzwerkkarte Primär - woran wird das fest gemacht (6)

Frage von ITSyndication zum Thema LAN, WAN, Wireless ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(6)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Benutzer lässt sich nur an einem Clientcomputer anmelden (11)

Frage von Ammann zum Thema Windows Server ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...

Hyper-V
Virtualisierung eines Servers (7)

Frage von Lornsti zum Thema Hyper-V ...