knechtibus
Goto Top

Per Batch Dateien der letzten 24h identifizieren und abarbeiten

Hallo miteinander,

wie der Titel des Beitrages schon verrät befinden sich in einem Verzeichnis mehrere Dateien mit verschiedenen Änderungsdaten. Nun möchte ich das die Batch die Dateien der letzten 24h identifiziert und jeweils einen Namen der Datei in eine Variable Bspl schreibt, angefangen mit der "ältesten". Dann wird die Variable Bspl verarbeitet und der nächste Dateiname wird in die Variable Bspl geschrieben und so weiter. Also eine Schleife die alle Dateien gleich verarbeitet. Ich hoffe die Beschreibung ist ausreichend. Freu mich auf eure Antworten.

MfG
knechtibus

Content-Key: 126443

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

Printed on: April 28, 2024 at 07:04 o'clock

Member: rubberman
rubberman Oct 05, 2009 at 17:25:45 (UTC)
Goto Top
Hallo knechtibus,

die Sache mit den "letzten24h" ist mit nativem Batch nicht so einfach. LotPings hatte mal einen Link auf eine Seite von Ritchie Lawrence gepostet:
Batch Funktionen
Die Funktionen DateToSecs und SecsToDate sollten dir die Möglichkeit geben Stichtag und -zeit zu berechnen. Alternativ könntest du ein VBScript-Schnipsel implementieren, der die Subtraktion von DateTime Werten übernimmt.

Der Schnipsel der die Auflistung mit den nötigen Daten übernimmt, sieht ggf. so aus
for /f "skip=5 tokens=1,2,3*" %%a in ('dir /a-d /od^|findstr /b /c:" " /v') do echo %%a %%b %%d  
Hoffe, das hilft schon mal.

Grüße
rubberman

<edit>Schleife wegen möglicher Leerzeichen im Dateinamen geändert</edit>
Member: Biber
Biber Oct 05, 2009 at 18:01:38 (UTC)
Goto Top
Moin knechtibus

wenn du deine Bedingung insofern lockerer formulieren kannst, nicht mehr die "letzten 24 Stunden" ermitteln zu wollen, sondern wenn für deine Zwecke die Einschränkung "alle Dateien, die nicht von heute sind" ausreicht...
...dann hast Du natürlich mit einem recht kurzen Halbzeiler auch mit native Batch gute Chancen.

Wie ernst bzw exakt gemeint sind denn "die letzten 24 Stunden"?

Grüße
Biber