首页 > 解决方案 > 比较哈希和输出差异

问题描述

所以我使用compare-objectcmdlet 来比较我在测试之前创建的 2 个哈希值,一个在测试之后创建的哈希值。目标是比较 2 个文件的哈希差异,并在屏幕上生成相等或不相等的结果并保存到文件中。

Compare-Object -ReferenceObject $(Get-Content -Path $title2hashstorage/$sha256) -DifferenceObject $(Get-Content -Path $source) > hashcompare.txt

除了我在创建 2 个哈希的日期上看到的差异之外,这很好用。

InputObject                           SideIndicator
-----------                           -------------
Hash Generated at 10/01/2019 11:07:25 =>           
Hash Generated at 10/01/2019 13:21:03 <=     

那么有没有办法只测试哈希而不是日期并返回相等或不相等的结果?

标签: powershell

解决方案


那么有没有办法只测试哈希而不是日期并返回相等或不相等的结果?

是的,Powershell 添加了一些漂亮的 cmdlet 来帮助恢复这几个版本。以下是你所追求的?

$first = $(Get-FileHash -Path '.\app.js').Hash
$second = $(Get-FileHash -Path '.\hive.js').Hash
if ($first -eq $second) { Write-Output "Match" } else { Write-Output "Different" }

根据请求者的评论更新答案

除非更改选择的文件或哈希算法,否则每次计算的哈希值都相同:

在此处输入图像描述

Compare-Object是一种比较两个对象的机制,这两个对象由多个属性组成。您通常不会Compare-Object在这种情况下使用,因为您可以只比较两个哈希字符串。你能修改我给你使用的示例吗Compare-Object,当然,但这有点矫枉过正。


推荐阅读