preacherman
Goto Top

Vergleichen einer 4 stelligen Jahreszahl mit einer 2 stelligen Jahreszahl bei WinNT

Batch auf Windows NT Systemen

Hallo,

ich habe folgendes Problem ich habe einige Windows NT System, auf den Systemen muss ich nach einer bestimmten Datei suchen und von dieser das Datum ermitteln, anschließend ermittle ich das aktuelle Datum, soweit kein Problem, Datei suchen und Datümer ermitteln klappt. Die Stelle an der es hakt ist, das der Dir-Befehl eine 2 stellige Jahreszahl ausgibt und das aktuelle Datum ein 4 stelliges Datum und somit die Abfrage immer auf einen Fehler läuft.
Wer kann mir bitte bei diesem Problem helfen. Ach ja ich kann keine Formatänderungen beim Datum machen oder Registry Keys ändern, die Systeme müssen so bleiben wie sie sind.

Die Option Dir /4 funktioniert bei Windows NT nicht, zumindest nicht auf unseren Systemen.

Danke für die Hilfe Preacherman

Content-ID: 48814

Url: https://administrator.de/forum/vergleichen-einer-4-stelligen-jahreszahl-mit-einer-2-stelligen-jahreszahl-bei-winnt-48814.html

Ausgedruckt am: 17.02.2025 um 00:02 Uhr

AxelHahn
AxelHahn 15.01.2007 um 14:35:30 Uhr
Goto Top
Hi

Verwende die Erweiterungen für Variablen mit Dateinamen (Details erhält man mit for /?):

for /F %%a in ('dir /s /b ') do echo %%~ta : %%a

Diese Zeile zeigt pro Datei eine Zeile im Format
Zeitstempel : Dateiname
an. Daraus solltest du dein Datum ziehen können.


Viele Grüsse
-= Axel =-
maneich
maneich 15.01.2007 um 15:30:09 Uhr
Goto Top
Hallo,

wandle innerhalb der Batch das aktuelle Datum entsprechend um z.B. mit

for /f "tokens=2-4 delims=." %%i in ('date /t') do set dat=%%i.%%j.%%k
set datum=%dat:~0,7%%dat:~-2%

echo %datum% = dd.mm.jj

Damit mußt Du keine Systemdaten verändern und wenn die Batch beendet ist, ist auch dieses Datum weg.

MfG maneich
Preacherman
Preacherman 17.01.2007 um 08:54:51 Uhr
Goto Top
Hallo,

danke erstmal für die Antwort.

Leider konnte ich deinen Lösungsansatz nicht verwenden, da NT nicht die Möglichkeit hat ~ta auszuführen.

Habe das Problem aber trotzdem jetzt gelöst. Danke nochmal für deine Mühe

Gruss
Reiner
Preacherman
Preacherman 17.01.2007 um 08:57:10 Uhr
Goto Top
Hallo,

danke deine Lösung hat mir weitergeholfen ich habe sie noch ein kleines bisschen verändert, aber ansonsten so benutzt wie du es beschrieben hast. Und es funktioniert einwandfei.

Danke

Gruss
Reiner
Biber
Biber 17.01.2007 um 10:44:13 Uhr
Goto Top
Moin Preacherman,

habe sie noch ein kleines bisschen verändert...

Könntest Du bitte dann auch die letztendliche Lösung des Problems (zumindest als Skizze) hier posten?

Danke
Biber
Preacherman
Preacherman 18.01.2007 um 10:24:24 Uhr
Goto Top
Hallo Biber,

klar sorry hatte ich gestern ganz vergessen.

if exist c:\winnt\NUL for /f "tokens=1-4 delims=." %%K in ('Date /t') do set date_NT=%%K.%%L.%%M
if exist c:\winnt\NUL set datum=%date_NT:~3,3%%date_NT:~6,3%%date_NT:~11,2%
if exist c:\winnt\NUL set %5=%datum%

So sieht bei mir das endgültige Ergebnis aus welches ich brauchte, falls noch Fragen sind einfach posten.

Gruss
Preacherman
Biber
Biber 18.01.2007 um 14:36:09 Uhr
Goto Top
Danke Dir, Preacherman,

ich setze den Beitrag dann mal auf "gelöst" und schließe ihn.

Grüße
Biber