Вы никогда ничего не назначаете $Report
. Вам нужно будет выполнить преобразование HTML в цикле. В настоящее время вы просматриваете каждый элемент, перезаписываете $firstName
и $lastName
с каждой итерацией. Вы заканчиваете цикл и имеете последнее значение в нем, чтобы использовать его для конечного результата.
Чтобы привести пример:
Предположим, вы хотите суммировать числа от одного до десяти, используя цикл. То, что вы сейчас делаете, это то, что следует.
$numbers = 1..10 $sum = 0 foreach($number in $numbers){ $sum = $number } Write-Output $sum
Вы присваиваете сумму, которая у вас есть на данный момент, в качестве суммы. Что вы действительно хотите сделать в этом случае, так это добавить сумму к каждой итерации.
$numbers = 1..10 $sum = 0 foreach($number in $numbers){ $sum = $sum + $number } Write-Output $sum
Что это значит для вашего кода? Вам нужно сгенерировать свой HTML внутри цикла. Ваш подход передачи выходных данных цикла foreach $repot
переменной может фактически использоваться для этого. В настоящее время он не генерирует никаких выходных данных, потому что вы просто выполняете присваивание (что, мы надеемся, не приведет к ошибке). Следующая модификация даст вам строку с выводом каждого имени и фамилии для каждого элемента. Вы можете использовать это для генерации вашего HTML. Альтернативный подход был бы аналогичным, используя $report
в качестве суммы добавление к ней каждой итерации.
$Report = ForEach ($item in $users) { $firstName = $item.(“fornavn”) $lastName = $item.(“efternavn”) Write-Output $firstname,$lastName }
PS имейте ввиду, что foreach и ForEach-Object это разные вещи. Вероятно, вы столкнетесь с последним чаще, особенно если вы используете сокращение %
. Одним из основных отличий является то, что вы не можете использовать continue
или break
внутри последнего, но вместо этого нужно будет использовать другой механизм, как return
.