Windows相当于linux cksum命令

问题描述 投票:42回答:5

我正在寻找一种计算crc校验和跨平台的方法。

cksum适用于Linux,AIX,HP-UX Itanium,Solaris,在windows中是否有类似linux cksum的命令?

%cksum run.sh
1491301976 652 run.sh

注意:没有第三方工具

windows linux solaris checksum
5个回答
98
投票

在Windows(命令提示符)中,您可以使用CertUtil,这里是语法:

CertUtil [Options] -hashfile InFile [HashAlgorithm]

对于cmd中的语法说明类型:

CertUtil -hashfile -?

例:

CertUtil -hashfile C:\myFile.txt MD5

默认为它支持的SHA1:MD2,MD4,MD5,SHA1,SHA256,SHA384,SHA512。不幸的是,没有CRC32作为Unix shell。

如果你想了解更多https://technet.microsoft.com/en-us/library/cc732443.aspx#BKMK_menu,这里有一个链接


9
投票

看起来好像有一个不受支持的MS校验和工具。它的功能很少,但看起来像你要求的那样。它于2012年8月发布。它被称为“Microsoft File Checksum Integrity Verifier”。

http://www.microsoft.com/en-us/download/details.aspx?id=11533


1
投票

为了避免恼人的非校验和行:CertUtil -v -hashfile“your_file”SHA1 | FIND / V“CertUtil”这将仅显示不包含CertUtil的行


0
投票

这是Windows https://cksum.codeplex.com/的* nix cksum命令行实用程序的C#实现


0
投票

结合@Cassian和@Hllitec以及来自https://stackoverflow.com/a/42706309/1001717的答案我的解决方案,我将校验和值(仅!)放入变量中进行进一步处理:

for /f "delims=" %i in ('certutil -v -hashfile myPackage.nupkg SHA256 ^| find /i /v "sha256" ^| find /i /v "certutil"') do set myVar=%i

要测试输出,可以使用var添加管道式echo命令:

for /f "delims=" %i in ('certutil -v -hashfile myPackage.nupkg SHA256 ^| find /i /v "sha256" ^| find /i /v "certutil"') do set myVar=%i | echo %myVar%

有点偏离主题,但仅供参考:我在将NuGet包上传到Artifactory之前使用过它。 BTW。作为替代方案,您可以使用JFrog CLI,其中自动计算校验和。

© www.soinside.com 2019 - 2024. All rights reserved.