Automatische Mail bei "nicht-mehr-Änderung" einer Datei

ipunus

Newbie
Registriert
Jan. 2011
Beiträge
1
Hallo zusammen,

bin neu hier und leider auch nicht vom Fach :( (Maschinenbauer und so)

Hätte folgende Problemstellung:
Ich benötige ein Programm, dass unter Windows 2000 läuft. Es soll prüfen ob eine bestimmte Datei (optional auswählbar, aber erstmal fix) innerhalb einer Minute geändert wurde anhand dem Änderungsdatum. Wenn dies nicht der Fall ist soll es einmal eine Mail senden und sich dann schließen bzw. stoppen.

Hab den Code für Mailversand hier gefunden: https://www.computerbase.de/forum/threads/batchdatei-aenderungsdatum.719053/

Background (optional):
In der Uni läuft ein Dauerprüfstand, den ich betreue. Dieser schreibt alle 20sek die Messwerte in eine Datei. Dieser Vorgang endet automatisch, wenn die Probe gebrochen ist. Mit der Mail sollte ich dann Bescheid wissen, dass der Versuch beendet ist (Sitze leider in einem anderen Gebäude...).

Könnte mir jemand helfen? Wäre super, bin leider echt nicht vom Fach - aber gerne für Eigeninitiative bereit...
 
Hi,

welche Sprache soll es denn werden?

Sind alle Gegebenheiten für den Mailversand vorhanden? Konten, Berechtigungen, Anbindung etc?

Im Prinzip ist es ein relativ einfacher Prozess denke ich. Du wählst über das Programm eine Datei aus, die überwacht wird und wenn nach einer Minute der "Letzer Zugriff" oder "Geändert am" Zeitstempel gleich ist => Mail raus.

Der automatisierte Messstand schließt die Datei am Ende ordnungsgemäß?

VG,
Mad
 
Ich hab jetzt einfach mal vbScript genommen, der Einfachheit halber. Musst du dich bei deinem SMTP authentifizieren? Dann funktioniert der Code den du gefunden hast nämlich nicht... z.B. mit diesem Code wäre die Authentifizierung möglich: http://www.example-code.com/vbscript/gmailSmtpSend.asp

Jetzt müssen wir noch überprüfen ob die Datei verändert wurde (quick and dirty):
Code:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set file = FSO.GetFile("test.txt")
Do 
	tmp = file.DateLastModified
	WScript.Sleep 6000 'Zum testen den Wert eventuell kleiner halten (Angabe in Millisekunden)	
Loop While DateDiff("s", tmp, file.DateLastModified) > 0 

MsgBox("Datei nicht mehr verändert") ' hier wäre dann die Email zu verschicken bzw. hier kannst du einfach den Code zum Verschicken einer Email reinkopieren

Probiers mal aus :)
 
Zuletzt bearbeitet:
Zurück
Oben