Sie ordnen nie wirklich etwas zu $Report
. Sie müssen die HTML-Konvertierung innerhalb der Schleife durchführen. Derzeit durchlaufen Sie jedes Element und überschreiben es $firstName
und $lastName
bei jeder Wiederholung. Sie beenden die Schleife und haben den letzten Wert für die endgültige Ausgabe.
Um ein Beispiel zu geben:
Nehmen wir an, Sie möchten die Zahl eins bis zehn mit einer Schleife summieren. Was Sie gerade tun, ist das Folgende.
$numbers = 1..10 $sum = 0 foreach($number in $numbers){ $sum = $number } Write-Output $sum
Sie geben die Nummer an, die Sie gerade halten, als Summe. Was Sie in diesem Fall tatsächlich tun möchten, ist, die Summe bei jeder Iteration zu addieren.
$numbers = 1..10 $sum = 0 foreach($number in $numbers){ $sum = $sum + $number } Write-Output $sum
Was bedeutet das für Ihren Code? Sie müssen Ihren HTML-Code innerhalb der Schleife erstellen. Ihr Ansatz, die Ausgabe der foreach-Schleife an die $repot
Variable zu übergeben, kann tatsächlich dazu verwendet werden. Es generiert gerade keine Ausgabe, weil Sie nur eine Zuweisung machen (die hoffentlich keinen Fehler macht). Die folgende Änderung gibt Ihnen einen String mit der Ausgabe jedes Vor- und Nachnamens für jedes Element. Sie können dies verwenden, um HTML zu generieren. Ein alternativer Ansatz wäre ähnlich, indem $report
jeder Iteration eine Summe hinzugefügt wird.
$Report = ForEach ($item in $users) { $firstName = $item.(“fornavn”) $lastName = $item.(“efternavn”) Write-Output $firstname,$lastName }
PS ist sich bewusst, dass Foreach und ForEach-Object unterschiedliche Dinge sind. Letzterem werden Sie wahrscheinlich häufiger begegnen, insbesondere wenn Sie die Abkürzung verwenden %
. Ein Hauptunterschied besteht darin, dass Sie nicht continue
oder break
innerhalb von Letzteren verwenden können, sondern stattdessen einen anderen Mechanismus verwenden müssen return
.