html - Powershell脚本修复ConvertTo-Html的输出
问题描述
我有一个带有值的 CSV 文件。我需要将我的 CSV 文件显示为 HTML 报告。在我的 CSV 文件中提到了执行报告链接作为列状态下的值。我还需要在我的报告中显示该特定报告单元格值作为链接。我尝试了以下代码,但它更改了状态列下的所有值作为链接。
CSV 文件
Name Date Status
Execution starts Dec-20 Pass
Comparing Dec-20 Fail
Report Dec-20 'http://go.microsoft'
上述链接仅供示例
我使用下面的代码将状态列下的所有值显示为链接。但我只需要我的报告值作为链接,而不是文本值
Function Myfunction
{
Import-CSV "my csv file link" |Select Name,Date,@{Label="Status";Expression={"<a href='$($_.Status)'>$($_.Status)</a>"}}|
ConvertTo-Html
}
$html=Myfunction
Add-Type -AssemblyName System.Web
[System.Web.HttpUtility]::HtmlDecode($html) | Out-File d:\temp\log.html
使用上面的代码。它在列状态中显示所有值,因为链接也包括通过、失败文本。因此,我只需要将其作为文本提及,它将是报告中的文本。如果它的链接也需要作为报告中的链接。
解决方案
如果您想根据名称“报告”来决定,那么这样的事情应该可以工作。
Function Myfunction
{
$properties = 'Name',
'Date',
@{Label="Status";Expression={
$(if($_.name -eq 'Report'){"<a href='$($_.Status)'>$($_.Status)</a>"}else{$_.Status})
}}
Import-CSV "my csv file link" | Select-Object $properties | ConvertTo-Html
}
如果您只想在值类似于 URL 时添加链接,那么您可以执行类似的操作。
Function Myfunction
{
$properties = 'Name',
'Date',
@{Label="Status";Expression={
$(if($_.status -match '://'){"<a href='$($_.Status)'>$($_.Status)</a>"}else{$_.Status})
}}
Import-CSV "my csv file link" | Select-Object $properties | ConvertTo-Html
}
推荐阅读
- python - pylint and "referenced before assignment"
- scala - 如何在 Scala 中将 List[List[String],Int] 组合成单个 List[String]?
- java - 如何重新创建下表?
- java - Oracle ojdbc7 驱动程序 12.1.0.2 问题
- android - WebViewCompat 的示例用法
- javascript - XMLHttpRequest Promise,嵌套在一些同步代码中
- c# - Linq Count() 将始终在 Visual Studio 中返回 1
- r - 使用通过 tidycensus 下载的数据的dotsInPolys 长度不匹配
- mysql - 使用插入时使用触发器更新数据库
- c# - 电子邮件不异步发送