【发布时间】:2015-03-24 12:15:38
【问题描述】:
我使用 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 中比较对象与对象?
【问题讨论】:
-
这里有什么问题?如果您的代码不能按照您想要的方式运行,您应该显示该代码。
-
@EtanReisner 我使用 Get-FileHash 从目录中的文件列表生成 MD5 值列表。它在 Powershell 中以表格格式显示它们。然后我将这些值导出到相同路径的 .csv 文件。当我使用 Import-CSV cmdlet 将 .csv 文件导入回 Powershell 控制台时,它会输出 MD5 表,尽管宽度不同。当我创建一个简单的 compareHash 函数时,它说值不匹配。
-
问题是为什么你的函数说它们不匹配或者为什么列的宽度不同?如果问题与您的功能有关,您需要显示该功能。如果问题是关于显示的宽度,那么我不知道这是否是一个真正的问题,它可能只是对象配置在 Get-FileHash 对象指示的内容和返回的行对象指示的内容之间有所不同(您必须检查对象看看)。
标签: windows powershell compare md5 cmdlets