Powershell 2:计算文件校验和的最佳方法?

Lar*_*old 5 powershell

我每小时运行一个脚本来处理一个 CSV 文件。在脚本的开头,如果 CSV 文件没有改变,我需要退出。让我们假设文件时间戳不是一个选项。(我问这个问题是为了教育价值)

我正在考虑在整个文件中啜饮并计算内容的哈希值,如下所示:

$fileData = get-content \path\to\file
$hashCode = $fileData.GetHashCode()
Run Code Online (Sandbox Code Playgroud)

然后我会在一次次运行中保存这些内容,如果后续运行中的哈希值相同,请退出我的脚本。

假设文件时间戳不可用,是否有更好的方法来做到这一点?

pk.*_*pk. 5

您最终将使用 System.Security.Cryptography 命名空间来生成该哈希。在PowerShell的社区扩展已经为你做的工作。有一个 Get-Hash cmdlet 返回一个 HashInfo 对象,您可以使用它进行比较。