0

我编写了一个脚本来将文件夹对象列表读入一个显示文件夹属性的 xml 文件。它还会在稍后的时间点创建另一个 xml 文件。创建 delta xml 文件后,我将两个 xml 文件都导入并根据文件夹名称进行比较,以显示哪些文件夹已被删除或删除,并将结果以 html 格式保存到文件中以供查看。一切正常,但我想替换结果中的一些值。比较对象cmd-let 让我显示一些属性,但通过将 => 用于增量文件中添加的文件夹或 <= 用于在增量文件中删除的文件夹来告诉更改在哪一侧。我真的很想替换 SideIndicator 的列名,并用更直观的东西替换 => 或 <= 值。我尝试使用 -Replace {$_ $original, $newvalue} 类型方法。我在 Hey Scripting Guy 博客和其他一些示例上找到了指导,但似乎没有一个符合我的要求。解决这个问题的最佳方法是什么?目前我没有存储比较结果,只是格式化并转换为 HTML。任何建议表示赞赏。如果需要,我可以发布代码,但它大约有 60 行长,我真的在寻找完成此任务的最佳方法,而不是必须有人来编写代码。

谢谢!

4

2 回答 2

0

这是一种方法,但我最终通过执行以下操作修改了 html 报告:

(Get-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm) | 
Foreach-Object {$_ -replace "SideIndicator", "Change Status"} |
Set-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm
(Get-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm) |
Foreach-Object {$_ -replace "=&gt;", "New"} |
Set-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm
(Get-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm) | 
Foreach-Object {$_ -replace "&lt;=", "Removed"} |
Set-Content $WorkingDirectory\FolderAudit_$UseDateTime.htm 

作为替代我正在寻找的三个不同部分的一个声明,它似乎效果不佳。最终我会玩弄它并对其进行一些简化,但现在它可以满足我的需求。

于 2011-05-26T18:09:33.917 回答
0

如果只想替换输出显示中的列名,可以创建自定义表:

http://gallery.technet.microsoft.com/scriptcenter/ed188912-1a20-4be9-ae4f-8ac46cf2aae4

于 2011-05-24T15:15:41.343 回答