6741
Goto Top

Änderungen der Ordner melden

Hallo,

ich benötige eine Batch, die mir meldet, wenn ein Ordner neuangelegt worden ist.

Hintergrund ist: Beim starten des Systems soll geprüft werden, ob es einen neuen Ordner gibt. Wenn ja, dann soll eine Meldung per Email versendet werden. So kann sich der User per FTP die neuen Daten holen und wird immer auf den aktuellsten Stand gebracht.

Sobald ich also etwas auf den FTP Server speichere, soll beim Start oder evtl in einem Zeitinterval geprüft werden, ob es was neues gibt.

Sehr schön wäre, wenn der Ordner in dem sich die Files befinden mit angegeben werden kann.

Also unter Tool gibt es einen Ordner der da heißt "Sendemail" und diesen neue Ordnernamen sollte dann als Info mit versendet werden.

Ich habe den Server soweit, das er aus der Ferne gestartet werden kann. Wenn nun der User, der informiert wurde, später die Mail liest, kann er den Server selber starten, die Daten bei Bedarf uploaden und dieser fährt dann zu gewisser Stunden wieder runter.

Wäre super wenn ihr mir helfen könnt.

Content-Key: 33638

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

Printed on: April 19, 2024 at 17:04 o'clock

Member: Dani
Dani Feb 11, 2007 at 19:03:35 (UTC)
Goto Top
G' Abend,
ich probier's einfach mal. Der Batch basiert auf dem Archivbit. Probier's einfach mal aus!
@echo off & setlocal

::Welcher Ordner überwacht werden soll
set src_dir=D:\test

::Datei - Dort werden die neuen Ordner gespeichert
set path_file=D:\new_folders.txt

::###############################################################

::Listet alle Ordner und Dateien bei denen das Archivbit nicht gesetzt ist und schreibt diese in die Datei
dir /b /a-a "%src_dir%" >> "%path_file%"  

::E-Mail versenden
::Dein Befehl für SendMail - Hoffe du kannst Dateien verschicken *gg*

::Setzte die Archivattribute für die neuen Ordner und Dateien
for /f "delims=" %%a IN ('type "%path_file%"') DO attrib +A "%dir%\%%a"  

::Löscht die Datei 'new_folders.txt' 
del "%path_file%"  
Viel Spaß...Wenn du Fragen hast, einfach schreiben.


Gruß
Dani
Mitglied: 6741
6741 Feb 14, 2007 at 07:12:18 (UTC)
Goto Top
Hi Dani,

von Deiner Umsetzung wohl richtig, evtl habe ich mich nicht richtig ausgedrückt.

Folgender Fall:

Es gibt einen Ordner der hat div. Unterordner. Diese sind im Startvorgang des PC nicht geändert. Also checkt die Batch gibt es eine Änderung zum letzten Start bzw zum letzten Test der Ordner.

Hier bin ich soweit, das ich ein dir in Datei dir_neu.txt schreibe ( dies wird nach Prüfung in dir_alt.txt umbennant ). Jetzt vergleiche ich dir_neu.txt mit dir_alt.txt und muss eine dif.txt Datei bekommen mit den Inhalt der sich Unterscheidet.

Bis hier bin ich aber ...

ich nutze:

fc dir_neu.txt dir_alt.txt (umleitung in txt ) dif.txt

damit bekomme ich aber nicht das gewünscht Ergebniss.

Also eine Zeile, wenn es nur einen Unterordner gibt. Die dif.txt zeigt sehr viel an, aber nicht nur die Zeile.

Also habe ich mir gedacht, man Filter alle Einträge raus die nicht ein DIR in der Zeile haben.

Das wäre jetzt noch ein Versuch. Evtl muss man da mit dem find Befehl arbeiten.

Ich müsste also dir_neu.txt und dir_alt.txt erst filtern und dann vergleichen.

Kannst du mir beim flitern behilflich sein.

gruß