Powershell 无法将文件中的 MD5 值与生成的 MD5 值进行比较

Powershell Unable to compare MD5 values from file with MD5 values generated

我使用 Powershell 的 Get-FileHash 函数从项目中的一个目录生成了 MD5 校验和值列表,然后将这些值导出到 .csv 文件。

$path = "C:\Users\Krishnaa\Documents\Visual Studio 2012\Projects\NamePrint\NamePrint\obj\Debug"

$hash = Get-FileHash -Path $path\* -Algorithm MD5

$export = $hash | Export-csv $path\hashfile.csv

这就是我调用 $hash 时输出的样子:http://i.stack.imgur.com/Owi0Q.png

然后我将 .csv 文件导入回 Powershell 控制台。

$import = Import-csv $path\hashfile.csv | Format-Table

当我调用 $import 时,它会输出:http://i.stack.imgur.com/cqvsO.png

当我自己创建一个简单的函数来比较两个内容时,我遇到了问题,它说内容不匹配。我确实知道 .csv 中的每一行都被 Powershell 视为一个对象。如何在 Powershell 中比较对象到对象?

你上面代码的一个问题是你使用 Import-CSV。您没有将 Import-CSV 返回的对象分配给 $import,您分配的是 Format-Table 返回的格式化对象数组。如果删除 Format-Table,您应该能够将 $import.hash$hash.hash 进行比较(尽管您可能需要循环并逐行进行比较)。