Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Änderungsdatum einer Datei prüfen und Mail senden

Frage Entwicklung Batch & Shell

Mitglied: webman123

webman123 (Level 1) - Jetzt verbinden

04.10.2012 um 10:15 Uhr, 3072 Aufrufe, 3 Kommentare

Hi,

ich habe diese Script http://www.administrator.de/contentid/87259 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
Mitglied: pieh-ejdsch
04.10.2012, aktualisiert um 16:21 Uhr
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
Bitte warten ..
Mitglied: webman123
05.10.2012 um 07:14 Uhr
Hi Phil,

danke für die Antwort.

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

cu
Bitte warten ..
Mitglied: pieh-ejdsch
05.10.2012 um 11:49 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Exchange Server
gelöst Exchange Server Mail senden (5)

Frage von MorrowToon zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...