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-Key: 48814

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

Printed on: April 20, 2024 at 00:04 o'clock

Member: AxelHahn
AxelHahn Jan 15, 2007 at 13:35:30 (UTC)
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 =-
Member: maneich
maneich Jan 15, 2007 at 14:30:09 (UTC)
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
Member: Preacherman
Preacherman Jan 17, 2007 at 07:54:51 (UTC)
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
Member: Preacherman
Preacherman Jan 17, 2007 at 07:57:10 (UTC)
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
Member: Biber
Biber Jan 17, 2007 at 09:44:13 (UTC)
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
Member: Preacherman
Preacherman Jan 18, 2007 at 09:24:24 (UTC)
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
Member: Biber
Biber Jan 18, 2007 at 13:36:09 (UTC)
Goto Top
Danke Dir, Preacherman,

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

Grüße
Biber