我正在寻找一种计算crc校验和跨平台的方法。
cksum
适用于Linux,AIX,HP-UX Itanium,Solaris,在windows中是否有类似linux cksum
的命令?
%cksum run.sh
1491301976 652 run.sh
注意:没有第三方工具
在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,这里有一个链接
看起来好像有一个不受支持的MS校验和工具。它的功能很少,但看起来像你要求的那样。它于2012年8月发布。它被称为“Microsoft File Checksum Integrity Verifier”。
http://www.microsoft.com/en-us/download/details.aspx?id=11533
为了避免恼人的非校验和行:CertUtil -v -hashfile“your_file”SHA1 | FIND / V“CertUtil”这将仅显示不包含CertUtil的行
这是Windows https://cksum.codeplex.com/的* nix cksum命令行实用程序的C#实现
结合@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,其中自动计算校验和。