Benutzer mit den meisten Antworten
Hashtable Value und key einzeln ausgeben

Frage
-
Hallo zusammen
ich habe das problem ich habe eine Hashtable und jetzt will ich die die Keys mit den zugehörigen Values einzeln ausgeben, um sie in einem E-Mail zu verschicken.
Das Hashtable:
Der Code
$emailFrom = "ix@x.com" $emailTo = "x.x@x.com" $smtpServer = "b.com" $subject = "Dies ist eine automatisch generierte Mail mit dem Link zur aktuellen ActiveSyncStatistik CSV Datei" $emailbody = foreach($bodykey in $iPhoneHashiOS.Keys){} $smtp = new-object Net.Mail.SmtpClient($smtpServer) $msg = new-object Net.Mail.MailMessage($emailFrom, $emailTo, $subject, $emailbody) $smtp.send($msg)
würde mich auf eine rasche Antwort freuen-
Gruss Dominique
Dominique Hofmann
Antworten
-
Hallo Dominique!
Jedes Element in einer Hashtable ist ein Objekt vom Typ DictionaryEntry!
Siehe: http://msdn.microsoft.com/de-de/library/system.collections.dictionaryentry%28v=vs.110%29.aspx$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} ForEach($Element in $iPhoneHashiOS.GetEnumerator()) { $Element | Get-Member break }
Dein Code müsste so gehen:$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} # Array Erstellen mit den Key = Value einträgen $Liste = ForEach($Key in $iPhoneHashiOS.Keys) { "$Key = $($iPhoneHashiOS.$Key)" } $emailFrom = "ix@x.com" $emailTo = "x.x@x.com" $smtpServer = "b.com" $subject = "Dies ist eine automatisch generierte Mail mit dem Link zur aktuellen ActiveSyncStatistik CSV Datei" # $OFS ist das Ausgabetrennzeichen. # Diese Variable gibt das Zeichen an, das die Elemente # eines Arrays trennt, wenn das Array in eine Zeichenfolge # konvertiert wird. # `n ist das Zeichen für einen Zeilen Umbruch $OFS = "`n" $emailbody = [String]$Liste # $OFS zurücksetzen auf Standardvorgabe (Leerzeichen) $OFS = ' ' $smtp = new-object Net.Mail.SmtpClient($smtpServer) $msg = new-object Net.Mail.MailMessage($emailFrom, $emailTo, $subject, $emailbody) $smtp.send($msg)
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Als Antwort markiert coolmanii Montag, 28. April 2014 14:18
- Bearbeitet Peter Kriegel Montag, 28. April 2014 14:26
- Tag als Antwort aufgehoben coolmanii Montag, 28. April 2014 14:42
- Als Antwort markiert coolmanii Montag, 28. April 2014 15:03
-
Im E-Mail Body sind alle Key = Value als Text mit Zeilenumbruch drin!
Führe mal nur diesen Code aus und du wirst das sehen!
$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} # Array Erstellen mit den Key = Value einträgen $Liste = ForEach($Key in ($iPhoneHashiOS.Keys | Sort-Object -Descending)) { "$Key = $($iPhoneHashiOS.$Key)" } $Liste # $OFS ist das Ausgabetrennzeichen. # Diese Variable gibt das Zeichen an, das die Elemente # eines Arrays trennt, wenn das Array in eine Zeichenfolge # konvertiert wird. # `n ist das Zeichen für einen Zeilen Umbruch $OFS = "`n" $emailbody = [String]$Liste $OFS = ' ' # E-Mail Body Anzeigen $emailbody
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Bearbeitet Peter Kriegel Dienstag, 29. April 2014 08:35
- Als Antwort markiert coolmanii Dienstag, 29. April 2014 09:12
Alle Antworten
-
Hallo Dominique!
Jedes Element in einer Hashtable ist ein Objekt vom Typ DictionaryEntry!
Siehe: http://msdn.microsoft.com/de-de/library/system.collections.dictionaryentry%28v=vs.110%29.aspx$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} ForEach($Element in $iPhoneHashiOS.GetEnumerator()) { $Element | Get-Member break }
Dein Code müsste so gehen:$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} # Array Erstellen mit den Key = Value einträgen $Liste = ForEach($Key in $iPhoneHashiOS.Keys) { "$Key = $($iPhoneHashiOS.$Key)" } $emailFrom = "ix@x.com" $emailTo = "x.x@x.com" $smtpServer = "b.com" $subject = "Dies ist eine automatisch generierte Mail mit dem Link zur aktuellen ActiveSyncStatistik CSV Datei" # $OFS ist das Ausgabetrennzeichen. # Diese Variable gibt das Zeichen an, das die Elemente # eines Arrays trennt, wenn das Array in eine Zeichenfolge # konvertiert wird. # `n ist das Zeichen für einen Zeilen Umbruch $OFS = "`n" $emailbody = [String]$Liste # $OFS zurücksetzen auf Standardvorgabe (Leerzeichen) $OFS = ' ' $smtp = new-object Net.Mail.SmtpClient($smtpServer) $msg = new-object Net.Mail.MailMessage($emailFrom, $emailTo, $subject, $emailbody) $smtp.send($msg)
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Als Antwort markiert coolmanii Montag, 28. April 2014 14:18
- Bearbeitet Peter Kriegel Montag, 28. April 2014 14:26
- Tag als Antwort aufgehoben coolmanii Montag, 28. April 2014 14:42
- Als Antwort markiert coolmanii Montag, 28. April 2014 15:03
-
Welches Format ?
Du meinst sicher die Sortierung von großen Zahlen absteigend?
$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} # Array Erstellen mit den Key = Value einträgen $Liste = ForEach($Key in ($iPhoneHashiOS.Keys | Sort-Object -Descending)) { "$Key = $($iPhoneHashiOS.$Key)" } $Liste
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ -
Tut mir leid für die unverständliche Formulierung...
Ich meinte mit dem Script oben wird in der gesendeten E-Mail nur 1 Key mit zugehörigen Value angezeigt und meine Frage wäre wie könnte man das Script, das du geschrieben hast, so abändern das es alle keys mit dem zugehörigen Value auf einmal anzeigt ?
Grüsse Dominique
Dominique Hofmann
-
Im E-Mail Body sind alle Key = Value als Text mit Zeilenumbruch drin!
Führe mal nur diesen Code aus und du wirst das sehen!
$iPhoneHashiOS = @{"iOS 6.0*" = 0; "iOS 6.1*" = 0; "iOS 6.1.1*" = 0; "iOS 6.1.2*" = 0; "iOS 6.1.3*" = 0; "iOS 7.0*" = 0; "iOS 7.0.2*" = 0; "iOS 7.0.3*" = 0; "iOS 7.0.4*" = 0; "iOS 7.1*" = 0} # Array Erstellen mit den Key = Value einträgen $Liste = ForEach($Key in ($iPhoneHashiOS.Keys | Sort-Object -Descending)) { "$Key = $($iPhoneHashiOS.$Key)" } $Liste # $OFS ist das Ausgabetrennzeichen. # Diese Variable gibt das Zeichen an, das die Elemente # eines Arrays trennt, wenn das Array in eine Zeichenfolge # konvertiert wird. # `n ist das Zeichen für einen Zeilen Umbruch $OFS = "`n" $emailbody = [String]$Liste $OFS = ' ' # E-Mail Body Anzeigen $emailbody
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Bearbeitet Peter Kriegel Dienstag, 29. April 2014 08:35
- Als Antwort markiert coolmanii Dienstag, 29. April 2014 09:12