Autohotkey 检查文件校验和

Autohotkey check file checksum

我需要一个 AHK 脚本,它将 check/compare 指定文件的 MD5 校验和值。

像这样:


'文件“%userprofile%\appsettings\app.ini”是否有 MD5 校验值A465564D654E56464025456F

退出脚本


我需要这个 运行 手动 - 按需,而不是持久脚本。

我更喜欢它是一个 Autohotkey 脚本,但如果它太复杂,powershell 或批处理脚本也可以。

谢谢

一个解决方案:

var:= ComObjCreate("WScript.Shell").Exec("cmd.exe /q /c CertUtil -hashfile %userprofile%/appsettings/app.ini MD5").StdOut.ReadAll()
outputArr := (StrSplit(var , "`r`n"))
out:=outputArr[2]
;MsgBox %out%

if(out=="A465564D654E56464025456F"){
    Msgbox not changed
    ExitApp
}
else{
    MsgBox Different MD5- restoring...
    filecopy, %userprofile%\appsettings\app.backup, %userprofile%\appsettings\app.ini, 1
    ExitApp
}

查看 MD5 散列部分的完整解释 。总结:

We can use the Windows CertUtil tool to find the MD5 hash sum and Parse the output by StrSpliting it into different lines (The MD5 sum itself will be on the second line).

脚本的其余部分只是一些逻辑,用于检查散列是否与给定的散列相同 (A465564D654E56464025456F),如果不相同,filecopy the .backup1 onto the .ini file. Note that we do not need to explicitly call filedelete if we give filecopy 覆盖文件的能力.


1- 我认为您可能指的是 .backup 文件而不是 .kackup 文件,但我可能是错的。如果您想要 .kackup 文件,请在脚本中将 app.backup 替换为 app.kackup