Board logo

标题: [注册表类] 批处理读取64位系统注册表为何出错? [打印本页]

作者: hzusb    时间: 2013-6-27 20:08     标题: 批处理读取64位系统注册表为何出错?

各位朋友,大家好,我用W7 X64系统

做了一个bat文件,其中代码:用 reg query 读取HKLM\SOFTWARE下面键值时,自动读取到HKLM\SOFTWARE\Wow6432Node下面去了,这是什么原因,如何才能决定读取哪个路径,请朋友详解一下,谢谢

还有个问题,双击bat文件,代码不执行,窗口一闪而过,最后,放个pause都不暂停。但是用CMD窗口执行代码又可以执行

最后感谢关注此贴的朋友,更感谢解答疑问的朋友,谢谢!
作者: Python    时间: 2013-6-27 20:28

请把完整代码贴出来看看
作者: apang    时间: 2013-6-27 22:09

win7 64bit系统中,%systemroot%\system32\存储的是64位程序,%systemroot%\syswow64\存储的是32位程序
HKLM\SOFTWARE\HKLM\SOFTWARE\Wow6432Node项下是32位应用程序的注册表值
如果用%systemroot%\syswow64\reg.exe访问注册表HKLM\SOFTWARE项时,系统会自动重定向到HKLM\SOFTWARE\HKLM\SOFTWARE\Wow6432Node项下。
作者: hzusb    时间: 2013-6-28 00:43

回复 3# apang


谢谢,你的意思是我的bat文件自动调用了32位的reg.exe?但我的CMD窗口是64位的啊?

还有第二个问题,你知道如何解决吗?
作者: Python    时间: 2013-6-28 13:10

回复 4# hzusb


    请看2楼
作者: hzusb    时间: 2013-7-2 22:39

回复 5# Python

假设下面代码一的值为:C:\,代码二的值为:D:\,但是:批处理运行“代码一”时得到的是“代码二”的值

代码一:
reg query "HKLM\SOFTWARE\Tencent\QQ\2009" /v "InstallPath"         
代码二:
reg query "HKLM\SOFTWARE\Wow6432Node\Tencent\QQ\2009" /v "InstallPath"
作者: Python    时间: 2013-7-3 08:28

回复 6# hzusb


    3楼的解答你怎么看?
作者: hzusb    时间: 2013-7-3 08:36

回复 7# Python


    代码我已经贴出来了,请给有意义的回复。
作者: Python    时间: 2013-7-3 08:46

回复 8# hzusb


    3楼的解答你看不懂?
作者: hzusb    时间: 2013-7-3 09:20

回复 9# Python

32位和64位的系统我还需要做出判断并给出不同的代码?
作者: Python    时间: 2013-7-3 12:34

回复 10# hzusb


    是的,你需要首先判断操作系统的位数。想要实现代码的通用性,必须考虑周全。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2