Momentanes Datum mit Datum aus Log File vergleichen und auf Bedingung löschen
hallo leute,
ich habe ein problem und hoffe jmnd kann mir weiter helfen, hier mal ein bisschen beschreibung:
ein server führt eine datensicherung durch, und speichert daraufhin in einem logfile einen bestätigungsstring mit datum/uhrzeit, wenn die datensciherung erfolgreich durchgeführt wurde.
nun habe ich einen ordner mit dateien, der auf vollzogener datensicherung geleert werden soll.
vorgestellt hab ich mir das folgendermaßen: timestamp im logfile und momentanes datum/uhrzeit wird verglichen..sagen wir um 23uhr jeden abend führt der server die datensicherung durch, und um 9uhr wird die batch datei jeden morgen ausgeführt, wird überprüft, ob in den letzten 10 std ein string gespeichert wurde. daraufhin kann der ordner geleert werden, findet die batch datei ncihts, wird nichts gemacht.
habe mir das ganze ein bisschen einfacher vorgestellt, komme aber nicht so wirklich in die batch geschichte rein. über suche konnte ich auch nichts genaues finden. würde mich freuen, wenn mir da jmnd weiter helfen könnte.
vielen dank im voraus!
gruß
ich habe ein problem und hoffe jmnd kann mir weiter helfen, hier mal ein bisschen beschreibung:
ein server führt eine datensicherung durch, und speichert daraufhin in einem logfile einen bestätigungsstring mit datum/uhrzeit, wenn die datensciherung erfolgreich durchgeführt wurde.
nun habe ich einen ordner mit dateien, der auf vollzogener datensicherung geleert werden soll.
vorgestellt hab ich mir das folgendermaßen: timestamp im logfile und momentanes datum/uhrzeit wird verglichen..sagen wir um 23uhr jeden abend führt der server die datensicherung durch, und um 9uhr wird die batch datei jeden morgen ausgeführt, wird überprüft, ob in den letzten 10 std ein string gespeichert wurde. daraufhin kann der ordner geleert werden, findet die batch datei ncihts, wird nichts gemacht.
habe mir das ganze ein bisschen einfacher vorgestellt, komme aber nicht so wirklich in die batch geschichte rein. über suche konnte ich auch nichts genaues finden. würde mich freuen, wenn mir da jmnd weiter helfen könnte.
vielen dank im voraus!
gruß
Please also mark the comments that contributed to the solution of the article
Content-Key: 111115
Url: https://administrator.de/contentid/111115
Printed on: April 24, 2024 at 15:04 o'clock
7 Comments
Latest comment
Hallo nevermind123!
Wäre nicht eher das jüngste Datum zu suchen und dann zu prüfen, ob es innerhalb der letzten 10 Stunden liegt (zumindest, wenn tatsächlich ein fortlaufendes Log geführt wird, wäre das älteste Datum doch sicher älter als 10 Stunden)?
Wenn ja, müsste es genügen, die letzte Zeile zu betrachten (da ja immer am Ende angefügt wird) ...
Grüße
bastla
Wäre nicht eher das jüngste Datum zu suchen und dann zu prüfen, ob es innerhalb der letzten 10 Stunden liegt (zumindest, wenn tatsächlich ein fortlaufendes Log geführt wird, wäre das älteste Datum doch sicher älter als 10 Stunden)?
Wenn ja, müsste es genügen, die letzte Zeile zu betrachten (da ja immer am Ende angefügt wird) ...
Grüße
bastla
Hallo nevermind123!
Etwas zum Testen:
Die gewünschte Stundenanzahl ist in Zeile 3 festzulegen, wobei für "vor 10 Stunden" ein negativer Wert zu verwenden ist.
Grüße
bastla
Etwas zum Testen:
@echo off & setlocal
set "Log=D:\Backups\log.txt"
set "St=-10"
set G=%temp%\GetTimeXHoursAgo.vbs
>%G% echo Set a=WScript.Arguments:T=DateAdd("h",a(0),a(1))
>>%G% echo WScript.Echo Mid(T,7,4)^&"-"^&Mid(T,4,2)^&"-"^&Left(T,2)^&Replace(Mid(T,11),":",".")
for /f "usebackq tokens=5,6" %%i in ("%Log%") do set "ZeitBack=%%i %%j"
for /f "delims=" %%i in ('cscript //nologo %G% %St% "%date% %time:~,8%"') do set "ZeitVergl=%%i"
if "%ZeitBack%" gtr "%ZeitVergl%" echo Aktuelle Sicherung gefunden: %ZeitBack%
Grüße
bastla