在64位系统中"reg add"写入注册表时被重定向Wow6432Node的终极解决办法

时间:2023-04-12 阅读:288 评论:0 作者:xirui

相信大家在WIN7或者win8下使用批处理时都会遇到这个问题,在使用32位应用程序的时候注册表操作时会被重定向到Wow6432Node,,特别是bat to exe批处理转Exe程序,某些注册表总是是会写入到Wow6432Node下面,

比如

HKEY_LOCAL_MACHINE\SOFTWARE

会被重定向到

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

造成某些注册表操作不能被执行到正确位置。

这个问题也是困扰了我很久的时间,之前找过各种办法,一直在用的是用647z制作自解压解决的,非常不方便。

今天就为大家带来终极解决办法,无需任何第三方程序。

这是我无意中找到的http://foolishfish.blog.51cto.com/3822001/1372779

代码如下,其实就是在 reg add 命令后面加上 /reg:64开关就可以了

/reg:64 /reg:32这两个开关隐藏的可真够深的,百度,google搜索竟然搜索不到。

经过半个小时的测试发现,不管是32cmd.exe还是64cmd.exe调用批处理操作注册表,只要在reg add命令加上/reg:64开关或者/reg:32开关就可以指定操作的注册表是32位的还是64位的。

也就是说只要加上/reg:64开关不管是32cmd.exe还是64cmd.exe注册表写入或删除操作都最终会是64位的注册表

           只要加上/reg:32开关不管是32cmd.exe还是64cmd.exe注册表写入或删除操作都最终会是32位的注册表

/reg:32 /reg:64测试系统Windwos 8.1 64位企业版,其它系统请自行测试,而且只测试了32cmd.exe64cmd.exe,并没有测试用batexe后的程序,我想应该也是可用的,请大家测试测试。

经测试 regedit /s 命令加上此开头无效。

以下是实例:

 

echo %PROCESSOR_ARCHITECTURE%

if %PROCESSOR_ARCHITECTURE%==x86 (set reg3264= /reg:64) else set reg3264=

reg add "HKLM\SOFTWARE\Microsoft\Internet Explorer\1test专用" /v "测试" /t reg_sz /d "测试" /f%reg3264%

pause

REG DELETE "HKLM\SOFTWARE\Microsoft\Internet Explorer\1test专用" /f%reg3264%


本文链接: https://www.5240.net/?id=20 转载请注明出处!