powershell - Powershell Compare-Object 修改侧指示器
问题描述
我有两个来自打印服务器的文本文件,需要从结果中获取 HTML 文档,当我运行当前代码时,我创建了 HTML,但它填充了数字而不是正确的数据。
$Compare = Compare-Object $Reference $Difference |
%{
if ($_.SideIndicator -eq "<=" {$($_.InputObject) does not exist on 01"}
if ($_.SideIndicator -eq "=>" {$($_.InputObject) does not exist on 02"}
} | Convertto-HTML -As LIST | Out-String
Convertto-HTML -Head $Header -Body $Compare | Out-file $Location
数据应如下所示(显然这有侧面指标)
当我包含上面的代码时,这就是返回的内容。
解决方案
继续我的评论。
这是你想做的事情吗?
Clear-Host
$Header = @'
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
'@
Compare-Object -ReferenceObject 'D:\Temp\Source\FileList1.txt' -DifferenceObject 'D:\Temp\Source\FileList2.txt' |
ForEach-Object {
[PSCustomObject]@{
SideIndicator = switch ($PSItem.SideIndicator)
{
'=>' {"$($PSItem) does not exist on FileList2"}
'<=' {"$($PSItem) does not exist on FileList1"}
}
}
} |
ConvertTo-Html -Property '*' -Head $Header |
Out-File -FilePath 'D:\Temp\FileCompareReport.html'
Get-Content -Path 'D:\Temp\FileCompareReport.html'
# Results
<#
Get-Content -Path 'D:\Temp\FileCompareReport.html'
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
</head><body>
<table>
<colgroup><col/></colgroup>
<tr><th>*</th></tr>
<tr><td>=> does not exist on FileList2</td></tr>
<tr><td><= does not exist on FileList1</td></tr>
</table>
</body></html>
#>
Invoke-Item -Path 'D:\Temp\FileCompareReport.html'
推荐阅读
- tomcat - Tomcat 迁移对 web.xml 和 struts-config.xml 的影响
- excel - 复杂的 IF 计数,Excel
- mysql - 存储 UUID 数组的 Rails、MySql、JSON 列 - 需要完全匹配
- java - 想在静态方法中调用非静态接口方法。如何?
- python - 不要针对子模型类
- c# - 将整数变量从另一种形式传递到 SQL 语句
- css - 将链接/按钮与还有其他元素的容器的右侧和底部对齐 - 不能使用 flex
- rest - Null @AuthenticationPrincipal 和 PreAuthorized 不起作用 Spring Boot 2 / Security 5
- android - 是否可以在 Xamarin 跨平台应用程序中为所有平台使用一个地图 API
- android - 如何使用没有室内地图/平面图的谷歌地图确定用户是否在建筑物的二楼?