Batch xls nach aktuellem Datum auslesen und email senden
Hallo Leute,
ich hänge schon seid langem an diesem Skript. Da meine Batch Kenntnisse miserabel sind brauche ich eure Hilfe.
Jeden Tag Aktualisieren sich 3 xls Datei die in einem Verzeichnis liegen z.b. "14564.xls" , "39876.xls" und "57863.xls" im Ordner "Kunden"
Die Dateinamen ändern sich nie! jeglich nur der Änderungsdatum.
So meine Herausforderung ist das ich eine Batch Datei brauche die prüft, ob diese 3 Dateien auch dem aktuellen Datum entsprechen!
Und mir dann eine Protokoll Email sendet!
Kann mir da jemand evtl weiterhelfen?
Mit freundlichen Grüßen
Michael
ich hänge schon seid langem an diesem Skript. Da meine Batch Kenntnisse miserabel sind brauche ich eure Hilfe.
Jeden Tag Aktualisieren sich 3 xls Datei die in einem Verzeichnis liegen z.b. "14564.xls" , "39876.xls" und "57863.xls" im Ordner "Kunden"
Die Dateinamen ändern sich nie! jeglich nur der Änderungsdatum.
So meine Herausforderung ist das ich eine Batch Datei brauche die prüft, ob diese 3 Dateien auch dem aktuellen Datum entsprechen!
Und mir dann eine Protokoll Email sendet!
Kann mir da jemand evtl weiterhelfen?
Mit freundlichen Grüßen
Michael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 326614
Url: https://administrator.de/contentid/326614
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
14 Kommentare
Neuester Kommentar
@echo off & setlocal
for %%a in ("C:\Ordner\Kunden\*.xls") do (
for /f "tokens=1" %%b in ("%~ta") do (
if "%%b" == "%date%" (
echo Datum von %%a ist von heute.
) else (
echo ACHTUNG: Datum von %%a entspricht nicht dem heutigen.
)
)
)
Gruß mik
Wenn du sowieso Powershell verwendest warum machst du es nicht gleich damit
@echo off & setlocal
set "SMTP=smtp.server.de"
set "SUBJECT=Testmailing"
set "FROM=Powershell@%computername%"
set "TO=*****"
powershell -Executionpolicy ByPass -Command "$report = (gci 'C:\Users\Michael\Desktop\1\*' -Include '14564.xls','39876.xlsl','57863.xls' | %%{\"Datum für $($_.Name) : $(@{$true='OK';$false='FEHLER'}[$_.LastWriteTime.Date -eq (get-date).Date])\"}) -join [environment]::Newline; Send-MailMessage -To '%TO%' -Subject '%SUBJECT%' -Body $report -SmtpServer '%SMTP%' -From '%FROM%'"
Wie gesagt batch Kenntnisse == 0
Das lässt sich durch lesen von Dokus ändern...
Hallo,
Dann diese Batch in ein schon geöffnetes Kommandozeilefenster (CMD Window) ausführen (per Hand). Dann bleibt dir auch etwas zum lesen.
Gruß,
Peter
Dann diese Batch in ein schon geöffnetes Kommandozeilefenster (CMD Window) ausführen (per Hand). Dann bleibt dir auch etwas zum lesen.
A. Wie gesagt batch Kenntnisse == 0
Warum machst du das dann? Alles in einer Batchdatei packen oder halt von der ersten die 2te Bachtdatei aufrufen. CALL währe eine möglichkeit.Gruß,
Peter
Sorry kleiner Fehler, ist oben korrigiert.
Na dann fehlt ja nur noch ein gelöst hinten dran.
@echo off & setlocal
set "SMTP=smtp.server.de"
set "SUBJECT=Testmailing"
set "FROM=Powershell@%computername%"
set "TO=*****"
powershell -Executionpolicy ByPass -Command "$report = (gci '\\192.168.168.1\Kunde\*','\\192.168.168.2\Kunde\*','\\192.168.168.3\Kunde\*' -Include '14564.xls','39876.xlsl','57863.xls' | %%{\"Datum für $($_.Fullname) : $(@{$true='OK';$false='FEHLER'}[$_.LastWriteTime.Date -eq (get-date).Date])\"}) -join [environment]::Newline; Send-MailMessage -To '%TO%' -Subject '%SUBJECT%' -Body $report -SmtpServer '%SMTP%' -From '%FROM%'"
Oh man, wie wär's mal mit Doku lesen,
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powe ...
s. letztes Kommentar ..
i'm out now.
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powe ...
s. letztes Kommentar ..
i'm out now.
Keine Ursache, dann noch das Gelöst dran pappen und gut is.
Gruß mik
p.s. Du kannst hier die Leute ruhig dutzen, so förmlich handhaben wir das hier nicht .
Gruß mik
p.s. Du kannst hier die Leute ruhig dutzen, so förmlich handhaben wir das hier nicht .