Como gerar o valor de hash MD5 para vários arquivos em uma pasta usando cmd


2

Como mencionado em esta página , o comando:

CertUtil -hashfile  yourFileName  MD5 
pode ser usado para obter o valor de hash MD5 para um arquivo específico.

Como posso encontrar os valores de hash MD5 para vários arquivos em uma pasta usando o cmd?

Respostas:


4

Você poderia usar o seguinte script:

for %%f in (*) do (
certutil -hashfile "%%f" MD5
)

Obrigado por me lembrar das citações. Eu sempre lembro de usá-los no Unix, mas às vezes eu me esqueço do Windows.
G-Man

2

A maneira padrão de executar um comando em vários arquivos no CMD é o for comando. Você pode obter informações de uso digitando for /?. Uma solução simples para o seu problema é

for %F in (*) do @certutil -hashfile "%F" MD5

Aqui %F é uma variável. Você pode escolher uma carta - qualquer solteiro carta - para o nome da variável (use o mesmo nome em ambos os lugares, claro) - e observe que é sensível a maiúsculas e minúsculas ( %F não é o mesmo que %f ). Se você fizer isso em um script, use sinais de porcentagem dupla (por exemplo, %%F ).

As aspas em torno da segunda aparição da variável ( "%F" ) (como sugerido por resposta de strings terminadas em null ) são necessários se algum dos nomes de arquivo contiver espaços.

Você pode colocar uma lista de nomes de arquivos e / ou curingas entre os parênteses; por exemplo.,

for %F in (file1 file2 a* b*) do …

certutil é um pouco detalhado. Você pode querer diminuir a conversa dizendo

for %F in (*) do @certutil -hashfile "%F" MD5 | find /v "hashfile command completed successfully"

(para filtrar o command completed successfully mensagens).


0

Eu sei que você pediu especificamente para cmd, mas se você estiver usando o Windows 8.1 ou superior, considere o uso de Powershell em vez disso:

Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "\\path\to\files\*.*" -Recurse)

O interruptor Recurse é, obviamente, opcional. Você pode canalizá-lo para Export-Csv para obter uma lista de arquivos e seus hashes.

Você posso use isso no Windows 7, mas você precisa atualizar o Powershell para a versão 4 primeiro.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.