我需要向某人发送一个包含数千个文件的 10GB 文件。我知道在 Ubuntu 中,您可以在终端中使用下一个命令:md5sum <directory_name>
这将返回一个哈希值。
我正在使用 Windows 11,并且尝试了几件事:
- 首先,我尝试计算仅一个文件的哈希值:
CertUtil -hashfile .\file.png MD5
这返回了一个哈希值。 - 然后我尝试了相同的操作,但所有目录都包含所有文件:
CertUtil -hashfile "path_to_directory\*" MD5
但出现错误。
错误:
CertUtil: -hashfile error del comando: 0x80070002 (WIN32: 2 ERROR_FILE_NOT_FOUND)
CertUtil: El sistema no puede encontrar el archivo especificado.
我应该怎么办?
答案1
您可以使用 PowerShell 执行此操作,例如:
$hashString = (Get-ChildItem C:\Somedir -Recurse -File | Get-FileHash -Algorithm MD5).Hash | Out-String
(Get-FileHash -Algorithm MD5 -InputStream ([IO.MemoryStream]::new([char[]]$hashString))).Hash
来源,我稍微修改了一下它,只从文件中获取哈希值(否则会出现一堆子目录错误)并只返回哈希值。
这基本上以递归方式获取所有文件哈希值,将它们打印为一个字符串,然后从该字符串创建一个临时流并计算其哈希值。
>
或者,使用运算符( )将哈希字符串输出到文件$hashString > file.txt
,然后比较文件。