ghostx
Goto Top

Datum einer Datei mit aktuellem Datum per Batch vergleichen

Hallo Leute,

bin neu im Forum und auch Anfänger was Batch-Dateien angeht. Habe ähnliche Fragen gefunden aber wurde daraus leider nicht schlau, da wie gesagt ich nur ein Anfänger bin.

Zu meinem Problem:
Möchte mehrere Dateien aus verschiedenen Verzeichnissen per Batch-Datei überprüfen ob deren Änderungsdatum mit dem aktuellen Datum übereinstimmt, und falls nicht eine Fehlermeldung ausgeben.
Freue mich über jeden Tip.

Content-Key: 128984

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

Printed on: April 23, 2024 at 09:04 o'clock

Member: bastla
bastla Nov 09, 2009 at 16:32:58 (UTC)
Goto Top
Hallo ghostX und willkommen im Forum!

Je nachdem, woher die Liste der Dateien stammt (zB aus einer Textdatei) ist ggf eine diesbezügliche Anpassung vorzunehmen - grundsätzlich aber etwa so:
@echo off & setlocal
set Dateien="D:\Test\Datei 1.txt","D:\Test\Test2\Alt.txt","D:\Kein Test\Die wichtigste Datei.txt"  
set "Vergleich=%date%"  

for %%i in (%Dateien%) do if exist %%i (
    echo %%~ti|findstr /b "%Vergleich%">nul || echo Abweichendes Datum: %%i  
) else (
    echo Nicht gefunden: %%i
)
Anstelle des aktuellen Tagesdatums kann in Zeile 2 auch ein beliebiges anderes Datum (in der Schreibweise, in der es beim "dir"-Befehl ausgegeben wird) als Vergleichswert eingetragen werden.

Grüße
bastla
Member: ghostX
ghostX Nov 09, 2009 at 18:41:39 (UTC)
Goto Top
Hi bastla,

danke für die rasche Antwort

habe es ausprobiert und es funktioniert.

Funktioniert das ganze eigentlich auch wenn ich auf Dateien im Netzwerk zugreifen möchte? Also der Pfad beispielsweise so aussieht: \\172.12.14.56\e:\Datei1.txt ?
Member: bastla
bastla Nov 09, 2009 at 18:47:31 (UTC)
Goto Top
Hallo ghostX!
Funktioniert das ganze eigentlich auch wenn ... der Pfad beispielsweise so aussieht: \\172.12.14.56\e:\Datei1.txt ?
Wenn er so
\\172.12.14.56\e$\Datei1.txt
aussieht face-wink, sollte es gehen ...

Grüße
bastla
Member: ghostX
ghostX Nov 10, 2009 at 09:46:21 (UTC)
Goto Top
Hi bastla

Spitze! funktioniert 1a

eine Frage hätte ich noch. Kann ich auch, falls ein Datum abweicht, eine Logdatei anlegen lassen? bzw. das Cmd-Fenster offen lassen damit ich gleich erkennen kann dass irgendwas nicht stimmt ?
Member: bastla
bastla Nov 10, 2009 at 10:34:32 (UTC)
Goto Top
Hallo ghostX!

Das CMD-Fenster bleibt offen, wenn Du am Ende noch den Befehl "pause" hinzufügst, allerdings wäre eine Logdatei vermutlich sinnvoller:
@echo off & setlocal
set Dateien="D:\Test\Datei 1.txt","D:\Test\Test2\Alt.txt","D:\Kein Test\Die wichtigste Datei.txt"  
set "Vergleich=%date%"  
set "Log=D:\LogAktuell.txt"  

if exist "%Log%" del "%Log%"  
for %%i in (%Dateien%) do if exist %%i (
    echo %%~ti|findstr /b "%Vergleich%">nul || echo Abweichendes Datum: %%i  
) else (
    >>"%Log% echo Nicht gefunden: %%i  
)
if exist "%Log%" notepad "%Log%"  
Grüße
bastla
Member: ghostX
ghostX Jan 18, 2010 at 13:19:25 (UTC)
Goto Top
Hi bastla,

ist schon lange her...

Habe noch ein kleines Problem. Und zwar möchte ich das Aktuelle Datum nicht in jeder Zeile ausgeben sondern nur einmal als Überschrift. Am besten so dass es immer da ist, auch wenn in der Logdatei nichts steht. Also besser wenn die Logdatei immer erstellt wird unabhängig davon ob was drin steht oder nicht. Habe schon einige Sachen versucht aber leider nicht funktioniert. Müsste ich nicht einfach "echo %date" >> %Log" schreiben um das Datum in die Logdatei einzufügen? An welcher Stelle müsste es stehen?
Member: bastla
bastla Jan 18, 2010 at 14:52:53 (UTC)
Goto Top
Hallo ghostX!

Du kannst einfach die Zeile 6 durch
>"%Log%" echo %date%
ersetzen.

Grüße
bastla
Member: Biber
Biber Jan 18, 2010 at 14:55:45 (UTC)
Goto Top
Moin ghostX,

Zitat von @ghostX:
Müsste ich nicht einfach "echo %date" >> %Log" schreiben um das Datum in die Logdatei einzufügen?
An welcher Stelle müsste es stehen?
Kleiner Tipp: wenn bastla davon ausgeht, dass du nach nochmaligem lautem Wiederholen dieser Frage ganz allein darauf kommen wirst,
dann wird er dir sicherlich die Zeit dafür geben.
Denn eigentlich ist es von der so präzise formulierten Frage unmöglich, nicht auf die Antwort zu kommen...
Zwischen welchen Zeilen wäre es denn überhaupt denkbar (nach welcher Zeile kann es frühestens, vor welcher Zeile muss es spätestens)?
Oder um einen anderen begnadeten Moderator zu zitieren: "Wollen Sie jetzt den Fifty-Fifty-Joker oder lieber das Publikum befragen?"

Grüße
Biber
[/edit] Doch wieder rechts überholt worden... *winks [/edit]
Member: ghostX
ghostX Jan 19, 2010 at 10:13:31 (UTC)
Goto Top
Hi bastla,

hat sich schon erledigt aber trotzdem danke. Musste in Zeile 6 folgendes reinschreiben:

echo>>"%Log%" %date%

Hatte es vorher auch so versucht wie du geschrieben hattest aber wollt irgendwie nicht funktionieren