Geburtstagsdatum aus einer CSV-Datei auslesen und mit aktuellen Datum vergleichen
Hallo zusammen,
hab echt ein Problem und hoffe Ihr könnt mir helfen. Im (cmd) Scripting bin ich leider noch ein Anfänger.
Es soll aus einer CSV-Datei, in der alle Geburtstagsdatums unseres Mitarbeiterstammes eingetragen sind, geprüft werden ob jemand der in dieser CSV Datei stehen an diesen Tag Geburtstag hat.
Bsp.
Karl Mustermann, Einkauf, 09.07.1990.
Eva Mustermann, Empfang, 14.03. 2001
Das Script soll den Inhalt der CSV-Datei durchsuchen, und die dahin befindlichen Geburtstagsdatums mit dem aktuellen Datum vergleichen.
Wird eine Übereinstimmung gefunden ,soll der Vor- und Nachnahme, Abteilung und das Geburtstagsdatum ( Bsp: Karl Mustermann, Einkauf, 09.07.1990)
in ein Email geschrieben werden und an eine Gruppe von Benutzer gesandt werden. Gibt es keine Übereinstimmung soll nichts gemacht werden.
Hat jemand eine Idee?
Vielen Dank vorab vor eure Hilfe.
hab echt ein Problem und hoffe Ihr könnt mir helfen. Im (cmd) Scripting bin ich leider noch ein Anfänger.
Es soll aus einer CSV-Datei, in der alle Geburtstagsdatums unseres Mitarbeiterstammes eingetragen sind, geprüft werden ob jemand der in dieser CSV Datei stehen an diesen Tag Geburtstag hat.
Bsp.
Karl Mustermann, Einkauf, 09.07.1990.
Eva Mustermann, Empfang, 14.03. 2001
Das Script soll den Inhalt der CSV-Datei durchsuchen, und die dahin befindlichen Geburtstagsdatums mit dem aktuellen Datum vergleichen.
Wird eine Übereinstimmung gefunden ,soll der Vor- und Nachnahme, Abteilung und das Geburtstagsdatum ( Bsp: Karl Mustermann, Einkauf, 09.07.1990)
in ein Email geschrieben werden und an eine Gruppe von Benutzer gesandt werden. Gibt es keine Übereinstimmung soll nichts gemacht werden.
Hat jemand eine Idee?
Vielen Dank vorab vor eure Hilfe.
Please also mark the comments that contributed to the solution of the article
Content-Key: 394549
Url: https://administrator.de/contentid/394549
Printed on: April 27, 2024 at 18:04 o'clock
10 Comments
Latest comment
Moin,
Nimm die Powershell und verbinde zwei Funktionen:
Du musst zunächst die CSV Einlesen:
https://stackoverflow.com/questions/16682744/read-a-csv-file-with-powers ...
Zum einen kannst du Daten wie folgt vergleichen: https://stackoverflow.com/questions/5097125/powershell-comparing-dates
Vermutlich kann man auch beides in einer Befehlszeile kombinieren, bin aber auch kein Powershell-Spezi ...
Gruß
em-pie
Nimm die Powershell und verbinde zwei Funktionen:
Du musst zunächst die CSV Einlesen:
https://stackoverflow.com/questions/16682744/read-a-csv-file-with-powers ...
Zum einen kannst du Daten wie folgt vergleichen: https://stackoverflow.com/questions/5097125/powershell-comparing-dates
Vermutlich kann man auch beides in einer Befehlszeile kombinieren, bin aber auch kein Powershell-Spezi ...
Gruß
em-pie
Kalender scheinen die unter dem "Wasserfall" nicht zu kennen
Und tschö.
$today_birthday = (Import-CSV 'd:\Geburtstage.csv' -delimiter ',') | ?{(get-date $_.Geburtstag).Date -eq (get-date).Date} | ConvertTo-HTML -Fragment | out-string
If ($today_birthday){
Send-Mailmessage -From Sender@domain.tld -to receiver@domain.tld -Subject "Heutige Geburtstagskinder" -Body $today_birthday -BodyAsHtml -Encoding UTF8 -SMTPServer server.domain.tld -UseSSL
}
Der Code funktioniert wenn deine CSV keine Überschriften hat, hast du ja leider nicht geschrieben. Sollte sie das aber haben, musst du einfach nur den Parameter -Header mit den Spaltennamen weglassen, die werden dann automatisch so benannt wie in der ersten Zeile der CSV.
Denn wenn man die Header per Parameter angibt dann wird die erste Zeile der CSV als Daten interpretiert und nicht als Überschriften und deshalb auch die Fehlermeldung das er das Wort "Geburtstag" nicht in ein Datum umwandeln kann (verständlicherweise).
Denn wenn man die Header per Parameter angibt dann wird die erste Zeile der CSV als Daten interpretiert und nicht als Überschriften und deshalb auch die Fehlermeldung das er das Wort "Geburtstag" nicht in ein Datum umwandeln kann (verständlicherweise).
Nochmal kopieren, typo.
Tja, erstens stimmen deine Quelldaten nicht, du hast uns ja noch nicht mal ein vollständiges Beispiel der ersten Zeilen deiner CSV geliefert, da können wir noch so viel raten wie wir wollen
Zweitens gibst du ja keine Credentials zur Auth am Mailserver an, deswegen lässt er dich nicht senden .
Ich hätte jetzt zumindest erwartet daß du dir die Doku zu den CMDLets zumindest mal ansiehst. Jeder Mailserver hat ja andere Anforderungen, das war nur ein rudimentäres Beispiel.
Sorry, aber einen Anfängerkurs gebe ich hier nicht, das ist Administrator.de nicht Gutefrage.net.
Zweitens gibst du ja keine Credentials zur Auth am Mailserver an, deswegen lässt er dich nicht senden .
Ich hätte jetzt zumindest erwartet daß du dir die Doku zu den CMDLets zumindest mal ansiehst. Jeder Mailserver hat ja andere Anforderungen, das war nur ein rudimentäres Beispiel.
Sorry, aber einen Anfängerkurs gebe ich hier nicht, das ist Administrator.de nicht Gutefrage.net.