我使用Powershell的Get-FileHash函数从项目中的目录中生成了MD5校验和值的列表,然后将这些值导出到.csv文件中。
$path = "C:UsersKrishnaaDocumentsVisual Studio 2012ProjectsNamePrintNamePrintobjDebug"
$hash = Get-FileHash -Path $path* -Algorithm MD5
$export = $hash | Export-csv $pathhashfile.csv
如果我调用 $hash
: https://i.stack.imgur.com/Owi0Q.png,这就是输出的样子
然后,我将.csv文件导入回Powershell控制台。
$import = Import-csv $pathhashfile.csv | Format-Table
当我调用$import
时,它会输出以下内容: https://i.stack.imgur.com/cqvsO.png
当我创建自己的简单函数来比较两个内容时,我遇到了问题,即它说内容不匹配。我确实了解.csv中的每一行都被Powershell视为一个对象。如何在Powershell中比较对象到对象?
上面的代码的一个问题是你对Import-CSV
的使用。 您不是将 Import-CSV
返回的对象分配给$import
,而是将 Format-Table
返回的格式化对象数组分配给 。 如果删除Format-Table
,您应该能够将$import.hash
与$hash.hash
进行比较(尽管您可能需要逐行循环和比较)。