中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-19 15:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么用reg export 截取QQ路径 查看 2,084 回复 20
楼 主 怎么用reg export 截取QQ路径 发表于 2008-05-24 19:53 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
UID 93679
性别 男
状态 离线
本来用QQ登录的话,HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ 的Install项的值就会是QQ的路径。

例如我的是



如果用reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ" 1.reg

导出用记事本打开后是 (我的机子而言)

Windows Registry Editor Version 5.00


"Install"="E:\\QQ\\"
"Uindata"=dword:483857e3


意思写明白点:
如何把1.reg中的 以开头为"Install"= 那项值取出来,并作为变量。(方便下文使用的变量)
要求取出来的值不包括双引号。就是路径。如 E:\\QQ\\
2 发表于 2008-05-24 20:37 ·  中国 上海 鹏博士宽带
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
UID 90372
性别 男
状态 离线
用不着reg export,直接reg query套在for里面就行了:

for /f "tokens=3" %i in ('reg query HKLM\Software\Tencent\QQ /v Install^|find "Install"') do @echo %i


如果一定要export后再分析文件的话

for /f "tokens=2 delims==" %i in ('findstr "Install" 1.reg') do @echo %~i
3 发表于 2008-05-25 07:36 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
UID 93679
性别 男
状态 离线
谢谢~~不过你的 %i 是不是要改为%%i呢,不然运行不了呢
4 发表于 2008-05-25 08:23 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
QQ安装路径有空格的时候,2楼的代码会出错。
5 发表于 2008-05-25 09:24 ·  中国 上海 鹏博士宽带
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
UID 90372
性别 男
状态 离线
%i和%%的變化i既然知道,就用不著提了
對應有空格的,在最後要用的%i上套上引號就行了
6 发表于 2008-05-25 09:47 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
Originally posted by pooronce at 2008-5-25 09:24 AM:
%i和%%的變化i既然知道,就用不著提了
對應有空格的,在最後要用的%i上套上引號就行了

问题不出在最后那个%i上面,而是你提取那一列的问题。
7 发表于 2008-05-25 10:19 ·  中国 上海 鹏博士宽带
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
UID 90372
性别 男
状态 离线
哦,对啊,倒没想到。
刚刚检测确定了一下,中间两个是TAB的,这样就好办多了

for /f "tokens=3 delims= " %i in ('reg query HKLM\Software\Tencent\QQ /v Install^|find "Install"') do @echo "%i"
8 发表于 2008-05-26 11:43 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
UID 93679
性别 男
状态 离线
不行。运行不了。运行会出错

能不能万能一点儿,不管有没有空格,而且生成的路径前后不包括双引号的呢。
9 发表于 2008-05-26 12:26 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
Originally posted by kidzgy at 2008-5-26 11:43 AM:
不行。运行不了。运行会出错

能不能万能一点儿,不管有没有空格,而且生成的路径前后不包括双引号的呢。

因为论坛会把tab键转换为空格,你拷贝7楼的代码后,自行把delims设置为tab键就行了。
10 发表于 2008-05-26 12:28 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
这样也可以:

@echo off
for /f "skip=4 tokens=1,2 delims=:" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install') do (
set QQPathL=%%a
set QQPathR=%%b
)
set QQPath=%QQPathL:~-1%:%QQPathR%
echo %QQPath%
11 发表于 2008-05-26 13:47 ·  中国 北京 鹏博士BGP
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
UID 67972
状态 离线

for /f "tokens=2*" %a in ('reg query HKLM\Software\Tencent\QQ /v Install^|find "Install"') do echo %b

本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
pooronce +4 2008-07-23 13:38

认识自己,降伏自己,改变自己
,才能改变别人!
12 发表于 2008-05-26 16:21 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
UID 93679
性别 男
状态 离线
Originally posted by HAT at 2008-5-26 12:28 PM:
这样也可以:

@echo off
for /f "skip=4 tokens=1,2 delims=:" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install') do (
set QQPathL=%%a
set QQPathR=%% ...


这个自己知道的了,可是我的问题是用reg export 取出来喔~
我想多掌握点知识。
13 发表于 2008-05-26 16:45 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
Originally posted by kidzgy at 2008-5-26 04:21 PM:


这个自己知道的了,可是我的问题是用reg export 取出来喔~
我想多掌握点知识。

@echo off
for /f "tokens=2 delims==" %%a in ('findstr /i "Install" "C:\test\1.reg"') do set qqpath=%%a
set qqpath=%qqpath:"=%
echo %qqpath%
14 发表于 2008-05-26 18:39 ·  中国 广东 梅州 电信
中级用户
★★
积分 262
发帖 129
注册 2007-07-11 06:50
UID 93679
性别 男
状态 离线
不行,得出的是 "=
15 发表于 2008-05-26 19:20 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
是编码的原因吧,reg export导出的1.reg文件是UNICODE编码,建议放弃这个方法。
论坛跳转: