无忧启动论坛

标题: 64位win7内存系统读取注册表失败,是什么原因? [打印本页]

作者: offree    时间: 2015-9-10 22:03
标题: 64位win7内存系统读取注册表失败,是什么原因?
有一段批处理
cd /d "%~dp0"
for /f "tokens=1,2 delims=:" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR" ^| find /i "exe64"') do (
    set "strR=%%i"
    set "strS=%%j"
)
set "RAR=%strR:~-1%:%strS%"
这段批处理没有问题,32位下完全正常,64位系统下,用鼠标双击也很运行也很正常。
但就是用在64位WIN 7的系统下,用自解压程序解压运行的批处理打开后,读不到注册表内容,总是读不到内容,为什么会有这总情况呢。如果需要双击来运行,又失去了做自解压单文件的意义...怎么解决这个问题呢。
作者: nttwqz    时间: 2015-9-10 22:08
本帖最后由 nttwqz 于 2015-9-10 22:17 编辑

说来也奇怪,我的Win8.1 64位下执行也正常。
作者: offree    时间: 2015-9-10 22:13
nttwqz 发表于 2015-9-10 22:08
楼主一定是没有看reg的帮助,不妨每次看下。

呵呵,我菜鸟一个,就是上面那一段,也是网上抄的,在WIN764位下用就出问题了。。。
作者: offree    时间: 2015-9-10 22:17
只求一个能用的批处理足矣。
作者: nttwqz    时间: 2015-9-10 22:30
offree 发表于 2015-9-10 22:17
只求一个能用的批处理足矣。

你这个批处理是不是用读取注册表的方法确定WinRAR.exe的路径?
作者: offree    时间: 2015-9-10 22:42
nttwqz 发表于 2015-9-10 22:30
你这个批处理是不是用读取注册表的方法确定WinRAR.exe的路径?

嗯,是的,找安装后的WinRAR.exe程序路径,
作者: nttwqz    时间: 2015-9-10 23:47
offree 发表于 2015-9-10 22:42
嗯,是的,找安装后的WinRAR.exe程序路径,

cd /d "%~dp0"
for /f "tokens=1,2 delims=:" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR" /reg:64 ^| find /i "exe64"') do (
    set "strR=%%i"
    set "strS=%%j"
)
set "RAR=%strR:~-1%:%strS%"
作者: 超级坏蛋    时间: 2015-9-11 18:55
用自解压程序是32的,。。
所以,你的注册表路径"HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR" ===>"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\WinRAR"

就可以了
作者: 超级坏蛋    时间: 2015-9-11 18:57
ser regroot=HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR
if "%PROCESSOR_ARCHITEW6432%"=="AMD64" set regroot=HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\WinRAR

就万无一失了
作者: nttwqz    时间: 2015-9-11 19:22
超级坏蛋 发表于 2015-9-11 18:57
ser regroot=HKEY_LOCAL_MACHINE\SOFTWARE\WinRAR
if "%PROCESSOR_ARCHITEW6432%"=="AMD64" set regroot=H ...

Wow6432Node下没有WinRAR,我装的是64位系统,64位WinRAR……
作者: 超级坏蛋    时间: 2015-9-11 19:56
那就换个64位自解压壳,。。

作者: 超级坏蛋    时间: 2015-9-11 19:58
或者,运行批处理install.cmd时,指定到64的cmd.exe

%windir%\system32\cmd.exe /c .\install.cmd




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3