Jump to content

powershell Nur den Tag und Monat mit dem aktuellen Datum vergleichen

Empfohlene Beiträge

Hallo, 

aus einer CSV-Datei sollen die Datensätze ausgeben werden, deren Tag- und Monatsangaben mit dem aktuellen Tags-und Monatsangaben übereinstimmen.

Übereinstimmende Datensätze sollen dann in einer E-Mail geschrieben und versendet werden. Leider bekomme ich das nicht hin. 

$NameKunde = (Import-CSV 'c:\temp\kundenstamm.csv' -delimiter ',')| ?{(get-date $_.TagMonat).Date -eq (get-date).Date} 
If ($NameKunde){Send-Mailmessage -From @-to @ -Subject "Kundeheute" -Body $NameKunde -BodyAsHtml -Encoding UTF8 -SMTPServer  -UseSSL -Credential $creds
}

Wie verwende ich den Get-Date.Day und Get-Date.Month um nur den Vergleich über den Tag und Monat laufen zu lassen.

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Naja, momentan vergleichst du ja

(get-date $_.TagMonat).Date -eq (get-date).Date

Wenn du nur einzelne Komponenten vergleichen willst, dann vergleich halt nur mir

(get-date $_.TagMonat).Month -eq (get-date).Month

Das dann nochmal für den Tag und dann und-verknüpfen

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi äymm,

dank für deinen Hinweis, war irgendwie blind. Genau so funktioniert es jetzt.

$NameKunde = (Import-CSV 'c:\temp\Kundenstamm.csv' -delimiter ',')| ?{(get-date $_.heute).Day -eq (get-date).Day -and (get-date $_.heute).Month -eq (get-date).Month} 
If ($NameKunde){Send-Mailmessage -from @ -to @ -Subject "Kunden Heute" -Body $NameKunde -BodyAsHtml -Encoding UTF8 -SMTPServer  -UseSSL -Credential $creds

vielen Dank

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo

hab jetzt noch etwas an meinen Code verändert.

$SMTPServer = " "
$From = " "
$Subject = " Kunden die heute etwas  bestellt haben " 
$MailAddress= “ “
$NameKunde = (Import-CSV '\\xx\SAPexport\ZD406ECD1C3CA86DEB7352D.csv' -delimiter ';')| ?{(get-date $_heute).Day -eq (get-date).Day -and (get-date $_.heute).Month -eq (get-date).Month} 
If ($NameKunde){Send-MailMessage -SmtpServer $SMTPServer -To $MailAddress -From $From -Body $NameKunde -BodyAsHtml -Subject $Subject -encoding ([System.Text.Encoding]::UTF8)} 
 

so weit funktioniert alles, nur die Ausgabe von $NameKunde ist etwas unvorteilhaft geraten.

@{Vorname=Achim; Nachname=Mustermann; Kundennummer= 2134556; Bestelldatum=12.12.2018; E-Mail =#}

Es soll in etwa so aussehen, wobei die E-Mail nicht erscheinen soll:

Vorname          Nachname       Kundennummer       Bestelldatum 
Achim              Mustermann         2134556                12.12. 2018

Hab es schon  mit | ConvertTo-HTML -Fragment  versucht, aber da bekomme ich eine String - Fehlermeldung.

Bräuchte eure Hilfe.

Danke

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Die Zeilen aus der CSV-Datei , die ich auslese, sehen so aus.

Vorname;Nachname ;Kundennummer;Bestelldatun;E-Mail
xxxx;xxxxx;0123452;12.12.1969;#
xxxx;xxxxx;0123376;11.01.1992;#
xxxx;xxxxx;2343234;11.05.1963; xxx@xxxxx.xx
leider wird diese ausmatisch erstellt und ich kann deswegen auch die Spaltenbezeichnung nicht ändern.

Wenn ich nun das Powsershell -Script ausführe bekomme ich folgene Ausgabe:

@{Vorname=Achim; Nachname=Mustermann; Kundennummer= 2134556; Bestelldatum=12.12.2018; E-Mail =#}  

Das ist sehr schlecht leserlich, dieshalb bräuchte ich diesen String etwas mehr geordet, in etwa so:

Vorname          Nachname       Kundennummer       Bestelldatum 
Achim              Mustermann         2134556                12.12. 2018

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

$NameKunde ist ja auch jeweils die ganze Zeile. Was du da bekommst, ist also der Hash mit den Zeilenwerten. Du kannst auf die einzelnen Items zugreifen, indem du sie separat angibst, z.B. $NameKunde.Vorname ergibt dann Achim.

Wird dann halt ein wenig umständlicher, aber damit kannst du dir die Ausgabe dann hinbasteln, wie du sie brauchst.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi MamaSchlumpf,

habe mit den einzelnen Items probiert, funktioniert zwar auch, aber sobald ich mehr als nur eine  Zeile ausgeben möchte,

Vorname          Nachname       Kundennummer       Bestelldatum 
Achim              Mustermann         2134556                12.12. 2018
Klaus               Mustermann          2144447                12.12.2018

bekommte ich die Werte in den Items hintereinander ausgegeben.
Beispiel: $NameKunde.Vorname  Ausgabe: Achim Klaus
                 $NameKunde.Nachname Ausgabe: Mustermann Mustermann
usw. 

  Leider weiß ich nicht, wie ich dies in tabellarischer Form dargestellt  hinbekomme.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung