NUR das Datum einer Datei auslesen
Habe mich jetzt mehrere Stunden mit dem Suchen beschäftigt und leider zwar immer mal was gefunden, aber nicht das was ich brauche.
Es ist wahrscheinlich sehr simple, aber ich komme einfach nicht zur Lösung.
Ich möchte eine Batchdatei erstellen, die nur dann ausgeführt wird, wenn eine bestimmte Datei älte als 4 Wochen ist.
Ist das mit einer Batchdatei überhaupt möglich?
danke schon mal für Eure Hilfe
Es ist wahrscheinlich sehr simple, aber ich komme einfach nicht zur Lösung.
Ich möchte eine Batchdatei erstellen, die nur dann ausgeführt wird, wenn eine bestimmte Datei älte als 4 Wochen ist.
Ist das mit einer Batchdatei überhaupt möglich?
danke schon mal für Eure Hilfe
Please also mark the comments that contributed to the solution of the article
Content-Key: 85536
Url: https://administrator.de/contentid/85536
Printed on: April 19, 2024 at 23:04 o'clock
3 Comments
Latest comment
Hallo tony-mh und willkommen im Forum!
Leichter geht's unter Verwendung von (temporärem) VBScript:
Wenn Du in der "for /f"-Zeiile nach "%Von%" eine Leerstelle und ein weiteres Datum angibst, wird die Differenz zwischen diesen beiden Daten berechnet, ansonsten wird das in %Von% enthaltene Datum mit dem heutigen verglichen. In beiden Fällen steht anschließend in %Alter% das Alter in Tagen.
Falls das Alter der Datei unter 4 Wochen liegt, wird der Batch beendet, ansonsten können anstelle der als Demo verwendeten Ausgabe "Mehr als 4 Wochen" beliebige Befehle folgen.
Grüße
bastla
Ist das mit einer Batchdatei überhaupt möglich?
Grundsätzlich ja - allerdings, wenn's nur Batch sein soll, eher mühsam.Leichter geht's unter Verwendung von (temporärem) VBScript:
@echo off & setlocal
set "Datei=D:\Timestamp.txt"
:: Script erzeugen
set "DD=%temp%\GetDateDiff.vbs"
echo Set args=WScript.Arguments:If args.Count^>1 Then:Bis=args(1):Else:Bis=Date:End If:WScript.Echo DateDiff("d",args(0),Bis)>%DD%
:: Dateidatum auslesen
for %%i in ("%Datei%") do set "Von=%%~ti"
:: Tagedifferenz berechnen
for /f %%i in ('cscript //nologo %DD% "%Von%"') do set /a "Alter=%%i"
:: Auswertung
if %Alter% leq 28 goto :eof
echo Mehr als 4 Wochen ...
Falls das Alter der Datei unter 4 Wochen liegt, wird der Batch beendet, ansonsten können anstelle der als Demo verwendeten Ausgabe "Mehr als 4 Wochen" beliebige Befehle folgen.
Grüße
bastla