Я пытаюсь создать функцию для создания неупорядоченного HTML-списка. Это отлично работает, когда я использую его как ConvertTo-HTMLlist $MyArray
, но не тогда, когда я передаю ему информацию, например, $MyArray | ConvertTo-HTMLlist
.Неупорядоченный HTML-код PowerShell
Моя функция:
Function ConvertTo-HTMLlist {
[CmdletBinding(SupportsShouldProcess=$True)]
Param (
[parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]
[ValidateNotNullOrEmpty()]
$Array
)
Process {
$Array = @(foreach ($_ in $Array) {"<li>" + $_ + "<br><br></li>"}) # Add extra space
$Array = ,"<ul>$($Array | Sort-Object)</ul>"
$Array = $Array.Replace("<br><br></li></ul>", "</li></ul>") # Remove last double breaks
$Array += "<p><i><font size=`"2`">* Native PowerShell errors are displayed in <font color=`"red`">red</font>.</font></i></p>"
Write-Output $Array
}
}
Результаты:
$MyArray = 'Apples', 'Peers', 'Bananas'
ConvertTo-HTMLlist $MyArray
# Correct result:
<ul><li>Apples<br><br></li> <li>Bananas<br><br></li> <li>Peers</li></ul><p><i><font size="2">* Native PowerShell errors are displayed in <font color="red">red</font>.</f
ont></i></p>
$MyArray | ConvertTo-HTMLlist
# Incorrect result:
<ul><li>Apples</li></ul><p><i><font size="2">* Native PowerShell errors are displayed in <font color="red">red</font>.</font></i></p>
<ul><li>Peers</li></ul><p><i><font size="2">* Native PowerShell errors are displayed in <font color="red">red</font>.</font></i></p>
<ul><li>Bananas</li></ul><p><i><font size="2">* Native PowerShell errors are displayed in <font color="red">red</font>.</font></i></p>
Там должен быть способ, чтобы собрать все из трубопровода, а затем начать его обработки.
IMHO нет способа сделать это, только потому, что конвейер предназначен для обработки одного элемента за раз. Здесь вы обрабатываете все элементы (весь массив) одним выстрелом. Точно так же, как @mjolinor сказал вам, вы можете использовать: ', $ myarray | ConvertTo-HTMLlist' как обходной путь. –
Спасибо CB за отзыв. Тем временем я нашел решение, проверьте мой ответ ниже. – DarkLite1