webman123
Goto Top

Änderungsdatum einer Datei prüfen und Mail senden

Hi,

ich habe diese Script Änderungsdatum einer Datei prüfen und wenn älter als x Mail senden etwas angepasst für das was ich prüfen will.

Folgendes soll gemacht werden:

Es sollten jeden Tag von Montag – Samstag in den einzelnen Unterordnern zu den Standorten eine Datei geschrieben werden.

Die Dateien werden pro Tag überschrieben. Somit müsste geprüft werden, ob die Datei von heute ist.

Der Aufbau ist so:

- Standort 1
- 01-Montag -> standort1.txt
- 02-Dienstag -> standort1.txt
- 03-Mittwoch -> standort1.txt
- 04-Donnerstag -> standort1.txt
- 05-Freitag -> standort1.txt
- 06-Samstag -> standort1.txt
- Standort 2
- 01-Montag -> standort2.txt
- 02-Dienstag -> standort2.txt
- 03-Mittwoch -> standort2.txt
- 04-Donnerstag -> standort2.txt
- 05-Freitag -> standort2.txt
- 06-Samstag -> standort2.txt

Es sind 15 Standorte so abzufragen und eine Mail zu verschicken, wenn

- Datei vorhanden und von heute -> Datei erfolgreich erstellt
- Datei vorhanden aber nicht von heute -> Datei nicht erfolgreich erstellt
- Datei nicht vorhanden ist -> Diesen Fall kann es eigentlich nicht geben, da die Datei nicht gelöscht wird sondern nur neu erstellt wird.

Dies funktioniert auch so mit dem so angepassten Script welches dann aber extrem lang werden würde, wenn ich nun alle Dateien damit abfragen will.

Wie kann ich das Script so anspassen, damit ich die Abfrage nur ein einziges Mal im Script habe und nicht für jede Datei?


REM Script zur Überprüfung des Änderungsdatums einer Datei. Ist das Datum
REM älter als Heute -x wird eine Mail versendet
REM =============================================


REM Hier wird die Zieldatei definiert:
REM ----------------------------------
SET Zieldatei=C:\Standort1\01-Montag\standort1.txt
SET Zieldatei1=C:\Standort1\02-Dienstag\standort1.txt
REM Hier wird die Dauer in Tagen angegeben, innerhalb der eine Änderung
REM innerhalb dieser Datei stattgefunden haben muss:
SET LastModified=0


REM Hier werden die E-Mail-Parameter gesetzt:
REM -----------------------------------------
SET Sender=server@maildomaene
SET SMTPServer=smtp.server
SET Recipient=user@maildomaene


REM Schreibe aktuelles Datum in Log >> log.txt
ECHO Aktuelles Datum: > log.txt
Date /t >> log.txt
ECHO ------------------ >> log.txt
Echo Aktuelle Uhrzeit: >> log.txt
Time /t >> log.txt


REM Prüfung, ob die Datei existiert
IF NOT EXIST %Zieldatei% GOTO :FILEDOESNOTEXIST

WasFile %Zieldatei% modified sametime today-%LastModified% >> log.txt
if not errorlevel 1 goto TRUE >> log.txt


:LASTMODIFICATION >> log.txt
ECHO ==================================================================================== >> log.txt
ECHO Datei %Zieldatei% wurde heute nicht verändert / erstellt >> log.txt
ECHO ==================================================================================== >> log.txt


GOTO :Zieldatei1-Pruefung

:TRUE
ECHO ==================================================================================== >> log.txt
ECHO Datei %Zieldatei% wurde heute verändert / erstellt >> log.txt
ECHO ==================================================================================== >> log.txt

GOTO :Zieldatei1-Pruefung

:ERROR
ECHO Datei nicht gefunden
GOTO :Zieldatei1-Pruefung

:FILEDOESNOTEXIST
ECHO ==================================================================================== >> log.txt
ECHO Die Datei %Zieldatei% existiert nicht oder kann nicht aufgerufen werden >> log.txt
ECHO ==================================================================================== >> log.txt


:Zieldatei1-Pruefung

REM Prüfung, ob die Datei existiert
IF NOT EXIST %Zieldatei1% GOTO :FILEDOESNOTEXIST

WasFile %Zieldatei1% modified sametime today-%LastModified% >> log.txt
if not errorlevel 1 goto TRUE >> log.txt


:LASTMODIFICATION >> log.txt
ECHO ==================================================================================== >> log.txt
ECHO Datei %Zieldatei1% wurde heute nicht verändert / erstellt >> log.txt
ECHO ==================================================================================== >> log.txt

blat.exe "log.txt" -html -to %Recipient% -subject "Status OK" -Server %SMTPServer% -f %Sender%

EXIT

:TRUE
ECHO ==================================================================================== >> log.txt
ECHO Datei %Zieldatei1% wurde heute verändert / erstellt >> log.txt
ECHO ==================================================================================== >> log.txt

blat.exe "log.txt" -html -to %Recipient% -subject "Status nicht OK" -Server %SMTPServer% -f %Sender%

EXIT

:ERROR
ECHO Datei nicht gefunden
EXIT

:FILEDOESNOTEXIST
ECHO ==================================================================================== >> log.txt
ECHO Die Datei %Zieldatei1% existiert nicht oder kann nicht aufgerufen werden >> log.txt
ECHO ==================================================================================== >> log.txt

blat.exe "log.txt" -html -to %Recipient% -subject "Datei nicht vorhanden" -Server %SMTPServer% -f %Sender%

EXIT


cu

Content-Key: 192190

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

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

Member: pieh-ejdsch
pieh-ejdsch Oct 04, 2012 updated at 14:21:41 (UTC)
Goto Top
moin,

Bitte Codetags setzten. Wie man einen neuen Beitrag erstellt und Bilder hinzufügt


Test Auf der CMD-Line:
>    >"D:\Verschickmich.txt" (for /l %i in (1 1 15 ) do @echo(&echo Standort %i &dir /s C:\Standort%i\standort%i.txt |findstr /b [0-9] |findstr /b %date% ||echo Standort %i: Heute noch keine Datei erstellt!) && type "D:\Verschickmich.txt"

Gruß Phil
Member: webman123
webman123 Oct 05, 2012 at 05:14:44 (UTC)
Goto Top
Hi Phil,

danke für die Antwort.

Für was ist die Datei "D:\Verschickmich.txt"? Muss diese schon bestehen?

cu
Member: pieh-ejdsch
pieh-ejdsch Oct 05, 2012 at 09:49:59 (UTC)
Goto Top
moin webman123,

Ja was suggeriert Dir denn der Name der Datei?
Die Datei muss nicht bestehen - Der Zielpfad sollte aber existieren.
Es wird ja auch die ganze Standartausgabe der Forschleife in diese Datei hineingeschrieben.
Umleitung
Übersicht
Befehlszeilenreferenz A-Z

Gruß Phil