0 registry scripting 64-bit batch-file
大家好我:)我写的批处理文件有问题.它在32位上工作正常,但显然它不适用于64位系统,我不知道为什么因为我无法访问64位系统.
这是适用于Vista 32位系统的代码
@echo off
Set Reg.Key=HKLM\SOFTWARE\Malwarebytes' Anti-Malware
Set Reg.Val=InstallPath
For /F "Tokens=2*" %%A In (
'Reg Query "%Reg.Key%" /v "%Reg.Val%" ^| Find /I "%Reg.Val%"'
) Do Call Set MBAMPATH=%%B
Run Code Online (Sandbox Code Playgroud)
有人可以重新写它以64位工作吗?
总是谢谢:)
x86和x64版本的Windows上的批处理文件没有区别.您遇到的问题是WoW64和透明的注册表重定向,请参阅此处了解更多详细信息.
HKLM\SOFTWARE\Wow6432Node 是64位Windows安装上的32位软件的正确注册表项,此代码在我的机器上运行:
Set Reg.Key=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Malwarebytes' Anti-Malware
Set Reg.Val=InstallPath
For /F "Tokens=2*" %%A In (
'Reg Query "%Reg.Key%" /v "%Reg.Val%" ^| Find /I "%Reg.Val%"' )
Do Call Set MBAMPATH=%%B
echo %mbampath%
Run Code Online (Sandbox Code Playgroud)
您的其他帖子包含基于%processor_architecture%环境变量的条件分支.但问题是,(我的机器上至少)%processor_architecture%是"AMD64"不是"x64".
为什么不只是查询可能的注册表项而不是基于体系结构的分支?