我的 PowerShell 冒险仍在继续……在最终弄清楚文件操作和一些正则表达式来格式化我的文本之后,我终于有了 2 个需要比较的文本文件。
Compare-Object $(Get-Content C:\File1.txt) $(Get-Content C:\File2.txt) -includeequal > C:\Results.txt
问题:在 2 个单独的文本文件上使用 Compare-Object 和 Get-Content 时,比较结果显示不匹配。我知道这是不正确的,因为我可以手动找到与两者相同的字符串。文本是一个随机的 ID 号,结构如下:
GTD-LVOE-FS-0032
每个文本文件本身可能包含特定 ID 号的多个副本,并且 File2 是包含所有出现的 ID 号的主列表。
解决方案:我希望带有–includeequal 的Compare-Object 返回一些== 结果,因为我知道是这种情况。是否有我可能忽略的格式问题导致此问题,或者当文件内和文件之间存在多个相同的字符串时,Compare-Object 是否无法像我预期的那样工作?
编辑:
作为测试,我创建了 2 个文本文件,每个文件包含以下内容。
GTD-LVOE-43-0021
GTD-LVOE-43-0021
GTD-LVOE-43-0021
GTD-LVOE-43-0021
我希望 Compare-Object 说这些文本文件是相同的,而是返回 File2 包含字符串。在我看来,问题在于 Compare-Object 在为比较创建的变量之一中处理相同的字符串。当需要比较的变量中有多个相同的字符串时,是否有另一种 CMDLET 或方法用于比较对象?