У меня есть скрипт powershell, который содержит одну переменную с именем $GetCon я хочу добавить для каждого результата в тег html <p> .
например, результат $GetCon :

 Name          Value
 -----         ------ 
 chrome         12 
 Explorer       10 
 Edge           5

на самом деле результат внутри пред тега такой же, но я хочу изменить каждый результат внутри тега p, например:

<p class="result">chrome</p> 
<p class="result">Explorer</p> 
<p class="result">Edge</p> 
<p class="resultnumbers">12</p> 
<p class="resultnumbers">10</p>
<p class="resultnumbers">5</p>  

...И так далее

Синтаксис моей ошибки:

> $result = " <p class='result'>$($Names)</p> <p
> class='resultnumbers'>$($Values)</p> " ConvertTo-Html | Out-File
> "c:\a.html"

1 ответ1

0

что-то вроде этого будет работать:

  • Сначала мы создаем ArrayList, чтобы мы могли .add() и .remove()
  • тогда мы должны передать HTML как строку здесь @" ... "@ противном случае это сломало бы "" может быть, есть лучший способ справиться с этим, но это единственный, который пришел мне в голову.
  • Затем мы должны .getEnumerator() чтобы сделать возможным перебрать хеш-таблицу с %
  • Внутри % мы добавляем строки в $result

Код:

$GetCon = @{
    "chrome"   = "12"
    "Explorer" = "10"
    "Edge"     = "5"
}

$result = New-Object System.Collections.ArrayList

$namehtml = @"
    <p class="result">
"@
$valuehtml = @"
    <p class="resultnumbers">
"@

$GetCon.GetEnumerator() | % {
    $result.add("$namehtml$($_.Name)</p>") > $null
    $result.add("$valuehtml$($_.Value)</p>") > $null
}

Вывод $result:

<p class="result">Explorer</p>
<p class="resultnumbers">10</p>
<p class="result">Edge</p>
<p class="resultnumbers">5</p>
<p class="result">chrome</p>
<p class="resultnumbers">12</p>

РЕДАКТИРОВАТЬ:

если это не имеет значения, если html имеет '' вместо "" , вы можете просто написать это так и удалить здесь-строки

$result = New-Object System.Collections.ArrayList

$GetCon.GetEnumerator() | % {
    $result.add("<p class='result'>$($_.Name)</p>") > $null
    $result.add("<p class='resultnumbers'>$($_.Value)</p>") > $null
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .