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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 394549
Url: https://administrator.de/forum/geburtstagsdatum-aus-einer-csv-datei-auslesen-und-mit-aktuellen-datum-vergleichen-394549.html
Ausgedruckt am: 24.05.2025 um 18:05 Uhr
10 Kommentare
Neuester Kommentar
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.