我每小时运行一次脚本来处理一个 CSV 文件。在脚本的开头,如果 CSV 文件没有更改,我需要退出。让我们假装文件时间戳不是一个选项。(我问这个问题是为了教育价值)
我正在考虑提取整个文件并计算其内容的哈希值,如下所示:
$fileData = get-content \path\to\file
$hashCode = $fileData.GetHashCode()
然后我会在每次运行中保存这些内容,如果在后续运行中哈希值相同,则退出我的脚本。
再次假设文件时间戳不可用,有没有更好的方法来做到这一点?
答案1
您最终将使用 System.Security.Cryptography 命名空间来生成该哈希。PowerShell 社区扩展已经为您完成了这项工作。有一个 Get-Hash cmdlet 可返回可用于比较的 HashInfo 对象。