52188
Goto Top

Mit Batch Datei suchen, Alter vergleichen und entspr. User in Datei schreiben

Das Skript soll nach der Bookmark.nsf suchen, gucken ob diese Älter ist als 6 Wochen und wenn ja, dann soll es den dazugehörigen User in eine Datei schreiben.

Hallo zusammen.

Wir benutzen in der Firma Lotus Notes, wobei die Emails auf nem Server und lokal liegen, das heißt eigentlich soll der User immer synchronisieren mit einem anderen Tool, Easy2Sync. Nun kommt es vor, dass das eben manche User nicht machen und die wollen wir nun benachrichtigen. Dabei sieht vereinfacht die Struktur so aus:

D:\User001\Bookmark.nsf
D:\User002\Bookmark.nsf
etc...

Nun soll das Skript nach der Bookmark.nsf suchen, gucken ob diese Älter ist als 6 Wochen und wenn ja, dann soll es den dazugehörigen User in eine Datei schreiben. Optional wäre halt dass die Datei an einen Admin geschickt wird und / oder ne Email an den User, wobei das wirklich nur optional ist.

Jetzt hab ich shcon von anfang an ein Problem, hab mir mal for /? ausgedruckt, und denke dass ich mit For /R anfange, wobei ich das hier noch nie so gesehen habe dass jmd diesen Parameter benutzt :/

Vielen Dank im vorraus.

EDIT:
Bezüglich dem Alter der Datei, damit ist gemeint, wann die Datei das letzte mal angefasst worden ist, sprich Zugriff.

Content-Key: 81749

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

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

Mitglied: 52188
52188 Feb 27, 2008 at 08:33:36 (UTC)
Goto Top
Okay, hier noch mein Ansatz

for /r "x:\" %%i in (bookmark.nsf?) do @echo %%i
Mitglied: 52188
52188 Feb 27, 2008 at 08:46:21 (UTC)
Goto Top
Hm...also das bekomme ich als Ausgabe

x:\User001\bookmark.nsf
x:\User002\bookmark.nsf
x:\User003\bookmark.nsf

Nun dachte ich, füge die Zeile hinzu, aber das geht net, wo ist der Fehler? Ich vermute die Variable %%I

for /r "x:\" %%i in (bookmark.nsf?) do for /F "tokens=2 delims=\" %%j in (%%i) do @echo %%j
Mitglied: 61319
61319 Feb 27, 2008 at 08:47:46 (UTC)
Goto Top
Hi,

der Ansatz mit der for-Schleife ist nicht schlecht.
Du könntest auch mit einem "dir /s", den Du auf eine Datei umleitest schon mal das Änderungsdatum der Dateien herrausfinden.

Einfacher wäre das ganze aber in einem VBScript zu lösen, da Dir da alle Möglichkeiten offen stehen.

Gruß
Niko
Mitglied: 52188
52188 Feb 27, 2008 at 09:05:43 (UTC)
Goto Top
Würde gerne bei Batch bleiben weil ich VBS garnicht kann ^^

hab jetzt auch den Fehler gefunden
for /r "x:\" %%i in (bookmark.nsf?) do for /F "tokens=2 delims=\ " %%j in ('echo %%i') do @echo %%j
Member: Biber
Biber Feb 27, 2008 at 11:01:10 (UTC)
Goto Top
Moin wurzel87,

für Datumsvergleiche solltest Du nicht native Batch verwenden, sondern entweder (zusätzlich) temporäres VBSkript oder ein Sahnetool wie dieses WasFile von Horst Schaeffer.

Dann würdest Du mit einem Konstrukt dieser Art...
...
for /r "x:\userkrams" %%i in (*.nsf) do @wasfile "%%i" modified before today-45 && echo %%i  

.. alle *.nsf-Dateien älter 45 Tage geliefert bekommen.

Grüße
Biber
Mitglied: 52188
52188 Feb 27, 2008 at 11:57:36 (UTC)
Goto Top
Alles klar, habs so gemacht, und es läuft wunderbar, vielen Dank