Powershell 2: maneira ideal de calcular a soma de verificação no arquivo?

5

Eu corro um script para processar um arquivo CSV uma vez por hora. No começo do script, eu preciso para sair se o arquivo CSV não foi alterado. Vamos fingir que os timestamps de arquivos não são uma opção. (Estou fazendo essa pergunta por valor educacional)

Eu estava pensando em fazer slurp em todo o arquivo e calcular o hash no conteúdo, da seguinte forma:

$fileData = get-content \path\to\file
$hashCode = $fileData.GetHashCode()

Eu salvaria esses conteúdos da execução para execução, e se o hash for o mesmo nas execuções subseqüentes, saia do meu script.

Existe uma maneira melhor de fazer isso, novamente, assumindo que os timestamps de arquivos não estão disponíveis?

    
por Larold 29.09.2011 / 22:45

2 respostas

5

Você acabará usando o namespace System.Security.Cryptography para gerar esse hash. As Extensões da Comunidade do PowerShell já fizeram o trabalho para você. Há um cmdlet Get-Hash que retorna um objeto HashInfo que você poderia usar para sua comparação.

    
por 29.09.2011 / 23:02
3

Uma coisa a notar, o Get-HashCode() não deve ser usado como um identificador de objeto exclusivo. Sempre será diferente toda vez que você executá-lo, mesmo na mesma sessão.

Verifique aqui e aqui para mais informações.

    
por 29.09.2011 / 23:06

Tags