使用--check on md5sum命令生成的校验和文件失败

时间:2015-06-22 16:52:56

标签: powershell cygwin md5sum

当我尝试在我生成的校验和文件上运行md5sum -c时遇到错误。我应该提一下,我是从PowerShell运行它的(因为脚本最终将运行它),这是md5sum的cygwin版本。

我有一个测试文件jira_defect.txt,我已经创建了这样的校验和:

md5sum jira_defect.txt > result.md5

这给出了一个包含以下内容的文件:

7d559b59459052f274e290b5e01a5485 *jira_defect.txt

但是当我跑步时

md5sum -c result.md5

我收到了臭名昭着的错误消息

  

result.md5:找不到格式正确的MD5校验和行

我已经使用-t选项再次尝试了这个选项,删除了星号,但这并没有什么区别。

1 个答案:

答案 0 :(得分:2)

使用重定向运算符将校验和写入输出文件会导致使用默认编码(Unicode)创建文件。 md5sum需要一个ASCII文件。使用Set-Content(或Out-File)以ASCII编码保存文件:

md5sum jira_defect.txt | Set-Content result.md5 -Encoding ASCII

如果将内容传输到md5sum

,您也可以使用Unicode文件
Get-Content result.md5 | md5sum -c

演示:

PS C:\> md5sum .\test.ps1 > result.md5
PS C:\> md5sum -c .\result.md5
C:\md5sum.exe: .\result.md5: no properly formatted MD5 checksum lines found
PS C:\> Get-Content .\result.md5 | md5sum -c
.\test.ps1: OK
PS C:\> md5sum .\test.ps1 | Set-Content result.md5 -Encoding ASCII
PS C:\> md5sum -c .\result.md5
.\test.ps1: OK
相关问题