ForEach Output Result em tags de parágrafo THML

0

Eu tenho um script powershell, que contém uma variável pelo nome $GetCon que eu quero adicionar para cada resultado em html <p> tag. Por exemplo, o resultado $GetCon é:

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

na verdade, o resultado dentro da tag pré é o mesmo, mas eu quero mudar cada resultado dentro da tag p, como:

<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>  

... e assim por diante

A minha sintaxe de erro é :

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

1 resposta

0

algo assim funcionaria:

  • Primeiro, criamos uma ArrayList para que possamos .add() e .remove() objects
  • então temos que passar o HTML como um aqui string @" ... "@ caso contrário, isso quebraria o "" talvez haja uma maneira melhor de resolver isso, mas é o único que me veio à mente.
  • Em seguida, temos de .getEnumerator() para possibilitar a iteração da hashtable com %
  • Dentro do % , adicionamos as sequências a $result

O código:

$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
}

Saída de $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>

EDITAR:

se não importa se o html tem '' ao invés de "" , você pode simplesmente escrevê-lo assim e deletar os aqui-strings

$result = New-Object System.Collections.ArrayList

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