michi-ffm
Goto Top

HTML in Batch und Powershell

Hallo zusammen,

zunächst nochmals vielen Dank für eure Unterstützungen!!!!
Ich bin momentan dabei, mich in Batch und Powershell einzulesen nur leider mache ich viele Fehler...

Habe hier folgenden Skript, der Excel nach Änderungsdatum prüft und mir eine Email sendet!
Ich würde nun gerne mein Skript erweitern und die Emails verschönern!

Möchte gerne Html einbinden, d.h wenn Fehler dann in der Mail die Zeile rot markieren und wenn OK dann grün !
Hierzu habe ich gelesen das ich " -BodyAsHtml" einbinden muss

dieses habe ich wie folgt in der letzten Zeile eingebunden, leider erfolglos:
 -BodyAsHtml -Body "<font size='8' color='red'><b>Test</b>" $report -SmtpServer '%SMTP%' -From '%FROM%'"  


Hier der Code der funktioniert:
@echo off & setlocal
set "SMTP=IP"  
set "SUBJECT=Mini01-04"  
set "FROM=Powershell@%computername%"  
set "TO=........."  

powershell -Executionpolicy ByPass -Command "$report = (gci 'C:\Users\Michael\Desktop\test\*','C:\Users\Michael\Desktop\test\*','C:\Users\Michael\Desktop\test\*','C:\Users\Michael\Desktop\test\*' -Include '1.xls','2.xls','3.xls' | %%{\"Datum fur $($_.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%'"  


Kann mir ggf. jemand weiterhelfen? Werde weiterhin testen, bis ich die Lösung gefunden haben!
Dieses Projekt ist nur eine einmalige Sache, da ich mit Powershell und Batch nie zu tun haben werden!

VG Mike

Content-ID: 327235

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

Ausgedruckt am: 25.11.2024 um 16:11 Uhr

131381
131381 23.01.2017 um 11:59:04 Uhr
Goto Top
powershell -Executionpolicy ByPass -Command "$report = (gci 'C:\Users\Michael\Desktop\test\*','C:\Users\Michael\Desktop\test\*','C:\Users\Michael\Desktop\test\*','C:\Users\Michael\Desktop\test\*' -Include '1.xls','2.xls','3.xls' | %%{$result = @{$true='OK';$false='FEHLER'}[$_.LastWriteTime.Date -eq (get-date).Date]; \"Datum für $($_.Fullname) : ^<span style=\"color:$(@{'OK'='green';'FEHLER'='red'}[$result])\"^>$result^</span^>\"}) -join [environment]::Newline; Send-MailMessage -To '%TO%' -Subject '%SUBJECT%' -BodyAsHtml -Body $report -SmtpServer '%SMTP%' -From '%FROM%'"  
michi-ffm
michi-ffm 23.01.2017 um 12:10:00 Uhr
Goto Top
Dich möchte ich wirklich nicht auf dem Kecks gehen sorry Du hast mir schon zu oft geholfen Vielen Dank dafür nochmal face-smile

zu deinem Skript:
Leider erhalte ich keine Mail.
H41mSh1C0R
H41mSh1C0R 23.01.2017 um 12:18:11 Uhr
Goto Top
*glaskugel polier*

Hmm bleibt grau, sie will mir einfach nicht verraten was du für eine Fehlermeldung bekommst. =)
michi-ffm
michi-ffm 23.01.2017 aktualisiert um 12:22:24 Uhr
Goto Top
Falsches Thema glaube ich face-smile
@H41mSh1C0R
H41mSh1C0R
H41mSh1C0R 23.01.2017 um 12:28:39 Uhr
Goto Top
Wieso? Du schreibst oben das du keine Mail bekommst und weiter??
Soll man jetzt raten woran das liegen mag?

Was bekommst du denn für eine Meldung(ggf. eine Fehlermeldung) wenn du das von MIK ausführst?
131381
131381 23.01.2017 aktualisiert um 12:39:32 Uhr
Goto Top
Zitat von @michi-ffm:
Leider erhalte ich keine Mail.
Ohhh jaaaaaaa einfach geil face-big-smile. Sei froh das ist ein Privileg!

Leute ich mach heute schon Freitag, und tschüssss ab ins Wochenende
michi-ffm
michi-ffm 23.01.2017 aktualisiert um 13:13:06 Uhr
Goto Top
@H41mSh1C0R
Bekomme ja keine Fehlermeldung!
Das ist ja das Problem face-smile

@131381 dir ein starkes erholsame Woche face-smile
michi-ffm
michi-ffm 23.01.2017 um 13:45:03 Uhr
Goto Top
Habe folgende Meldung, sobald ich den Code direkt in Powershell ausführe:
Wie gesagt der Code lasse ich via batch ausführen, deswegen auch keine Meldung!
unbenannt
131381
131381 23.01.2017 um 17:37:56 Uhr
Goto Top
Du hast es unvollständig kopiert...läuft doch...
michi-ffm
michi-ffm 24.01.2017 um 08:34:27 Uhr
Goto Top
Bei mir irgendwie nicht, naja egal ich lass es so face-smile

Trotzdem vielen Lieben dank
131381
131381 24.01.2017 aktualisiert um 08:53:49 Uhr
Goto Top
Du hast auch sicher die Carets ^ vor den < und > drin?

An deiner stelle würde ich das sowieso als reines Powershell-Skript erstellen und nicht so einen MIX aus Batch und PS fabrizieren. Achtung den Code oben kannst du nicht 1 zu 1 in die PS übernehmen, da hier Sonderzeichen für die Verwendung innerhalb einer Batch maskiert wurden!!