Autohotkey 自动热键检查文件校验和
我需要一个AHK脚本,它将检查/比较指定文件的MD5校验和值 大概是这样的:Autohotkey 自动热键检查文件校验和,autohotkey,checksum,Autohotkey,Checksum,我需要一个AHK脚本,它将检查/比较指定文件的MD5校验和值 大概是这样的: “文件”%userprofile%\appsettings\app.ini“是否具有MD5校验和值A465564D65454E5646256F 如果有的话 Msgbox“未更改” 如果没有 filedelete,“%userprofile%\appsettings\app.ini” 然后: filecopy、“%userprofile%\appsettings\app.kackup”、“%userprofile
“文件”
%userprofile%\appsettings\app.ini
“是否具有MD5校验和值A465564D65454E5646256F
- 如果有的话
Msgbox“未更改”
- 如果没有
filedelete,“%userprofile%\appsettings\app.ini”
- 然后:
filecopy、“%userprofile%\appsettings\app.kackup”、“%userprofile%\appsettings\app.ini”
- 然后:
我需要这是手动运行-按需,而不是一个持久的脚本 我更喜欢自动热键脚本,但如果太复杂,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哈希部分的完整说明。总之:
我们可以使用Windows CertUtil工具查找MD5哈希和
通过将输出分成不同的行(MD5和)来解析输出
本身将位于第二行)
脚本的其余部分只是一些逻辑,用于检查散列是否与给定的散列相同(a465564d65454e564625456f
),如果不相同,则将.backup
1备份到.ini
文件中。请注意,如果允许覆盖文件,则不需要显式调用
1-我想你可能指的是
.backup
文件而不是.kackup
文件,但我可能错了。如果您想要一个.kackup
文件,请在脚本中将app.backup
替换为app.kackup
。您是否介意告诉我们您打算将其用于什么用途?这是针对一个定制的错误应用程序,它有时会将其配置文件弄乱,导致应用程序在下次运行时无法正常运行。所以我想要一个脚本,它将检查配置文件是否完整,如果不完整,它将替换损坏的文件。出于性能原因,我不想每次启动应用程序时都替换该文件(良好的配置文件可以解决问题,但应用程序会重置为默认设置)。应用程序开发人员离开了项目,目前没有人愿意修复它)。非常感谢!我是说非常感谢!这正是我需要的!它像魅力一样工作!!!(是的,“.kackup”是一个打字错误,应该是“.backup”。