THML 段落标签中的 ForEach 输出结果

THML 段落标签中的 ForEach 输出结果

我有一个名为 powershell 脚本,其中包含一个名为的变量,$GetCon我想将该变量添加到每个结果的 html<p>标签中。
例如,$GetCon结果是:

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

实际上pre标签里面的结果是一样的,但是我想把每个结果都改成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

类似这样的方法可以工作:

  • 首先我们创建一个 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
}

相关内容