找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 54073|回复: 4

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

[复制链接]
发表于 2014-6-30 09:49:48 | 显示全部楼层 |阅读模式
相信大家在WIN7或者win8下使用批处理时都会遇到这个问题,在使用32位应用程序的时候注册表操作时会被重定向到Wow6432Node,,特别是bat to exe批处理转Exe程序,某些注册表总是是会写入到Wow6432Node下面,
比如
HKEY_LOCAL_MACHINE\SOFTWARE
会被重定向到
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
造成某些注册表操作不能被执行到正确位置。
这个问题也是困扰了我很久的时间,之前找过各种办法,一直在用的是用64位7z制作自解压解决的,非常不方便。
今天就为大家带来终极解决办法,无需任何第三方程序。
这是我无意中找到的http://foolishfish.blog.51cto.com/3822001/1372779
代码如下,其实就是在 reg add 命令后面加上 /reg:64开关就可以了
/reg:64 /reg:32这两个开关隐藏的可真够深的,百度,google搜索竟然搜索不到。
经过半个小时的测试发现,不管是32位cmd.exe还是64位cmd.exe调用批处理操作注册表,只要在reg add命令加上/reg:64开关或者/reg:32开关就可以指定操作的注册表是32位的还是64位的。
也就是说只要加上/reg:64开关不管是32位cmd.exe还是64位cmd.exe注册表写入或删除操作都最终会是64位的注册表
           只要加上/reg:32开关不管是32位cmd.exe还是64位cmd.exe注册表写入或删除操作都最终会是32位的注册表

/reg:32 /reg:64测试系统Windwos 8.1 64位企业版,其它系统请自行测试,而且只测试了32位cmd.exe和64位cmd.exe,并没有测试用bat转exe后的程序,我想应该也是可用的,请大家测试测试。
经测试 regedit /s 命令加上此开头无效。
以下是实例:

  1. echo %PROCESSOR_ARCHITECTURE%
  2. if %PROCESSOR_ARCHITECTURE%==x86 (set reg3264= /reg:64) else set reg3264=
  3. reg add "HKLM\SOFTWARE\Microsoft\Internet Explorer\1test专用" /v "测试" /t reg_sz /d "测试" /f%reg3264%
  4. pause
  5. REG DELETE "HKLM\SOFTWARE\Microsoft\Internet Explorer\1test专用" /f%reg3264%
复制代码

评分

参与人数 2技术 +2 收起 理由
CrLf + 1 好方法!
Batcher + 1 感谢分享

查看全部评分

发表于 2014-6-30 10:18:45 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2014-6-30 13:34:07 | 显示全部楼层
感谢分享

微软的官方文档上提到过这个参数
http://support.microsoft.com/kb/948698
 楼主| 发表于 2014-6-30 14:38:01 | 显示全部楼层
回复 3# DAIC


    确实不知道,之前在网上搜索资料很少,也没有找到有关/reg:64参数的。
相见恨晚啊
发表于 2015-4-25 21:51:19 | 显示全部楼层
多谢这位兄弟的帖子,解决我的大难题。
查注册表,老是被定位到Wow6432Node这个位置,原来是少了这个参数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:04 , Processed in 0.011333 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表