Я запускаю сценарий для обработки файла CSV один раз в час. В начале скрипта мне нужно выйти, если файл CSV не изменился. Давайте представим, что временные метки файлов не подходят. (Я задаю этот вопрос из соображений образовательной ценности)
Я думал о том, чтобы проглотить весь файл и вычислить хеш для содержимого, например:
$fileData = get-content \path\to\file
$hashCode = $fileData.GetHashCode()
Затем я бы сохранил это содержимое от запуска к запуску, и, если хэш будет таким же при последующих запусках, выйду из моего сценария.
Есть ли лучший способ сделать это, опять же, предполагая, что временные метки файлов недоступны?
В конечном итоге вы будете использовать пространство имен System.Security.Cryptography для генерации этого хэша. В Расширения сообщества PowerShell уже сделали всю работу за вас. Существует командлет Get-Hash, который возвращает объект HashInfo, который можно использовать для сравнения.