无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3805|回复: 8
打印 上一主题 下一主题

有没有批处理高手能帮忙写一个提取软件安装路径的批处理程序?

[复制链接]
跳转到指定楼层
1#
发表于 2008-1-12 10:17:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
举个例子,我电脑上QQ的安装信息,在注册表里导出如下:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\software\tencent\qq]
"check"=dword:43bd2764
"Install"="C:\\Program Files\\Tencent\\qq\\"
"version"="1445.110"
"Uindata"=dword:43be2f74


现在我们知道,"Install"="C:\\Program Files\\Tencent\\qq\\"这一句就是QQ的安装路径信息.
有没有什么办法把键值提取出来,然后把里面的双斜杠变成单的?
find /i "install" qq.reg >a.txt


如果能提取出C:\Program Files\Tencent\qq\,就可以赋值给变量了.
2#
 楼主| 发表于 2008-1-12 10:19:48 | 只看该作者
@echo off
reg export HKLM\software\tencent\qq qq.reg >nul
find /i "install" qq.reg >a.tmp
del qq.reg
notepad a.tmp


请高手指教,相信很多在XP里使用批处理的朋友都需要.
回复

使用道具 举报

3#
发表于 2008-1-12 13:46:56 | 只看该作者
@echo off
for /f "tokens=1,2,*" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\software\tencent\qq /v Install') do (set "x=%%k")
echo %x%
pause
回复

使用道具 举报

4#
 楼主| 发表于 2008-1-12 16:17:20 | 只看该作者
谢谢楼上的高手.
解决我一个很大的问题.
回复

使用道具 举报

5#
 楼主| 发表于 2008-1-12 16:24:07 | 只看该作者
另外问一下,为什么要这样写?
set "x=%%k"
而前面FOR语句里是%%i
看不懂啊~~~
回复

使用道具 举报

6#
发表于 2008-1-12 21:18:37 | 只看该作者
%%i表示第一个符号
也就是Install
%%j表示第二个符号
也就是REG_SZ
%%k表示第二个符号以后的所有符号
也就是取得的路径值了

这里你只需要%%k
所以后面变量设置为%%k咯



当然
如果想简明点的
变量一致的
把tokens改一下就ok了
例如改成

@echo off
for /f "tokens=3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\software\tencent\qq /v Install') do (set "x=%%i")
echo %x%
pause
这样就容易董了吧...
回复

使用道具 举报

7#
发表于 2008-1-12 21:19:46 | 只看该作者
很随意的啦
多做比较就懂了
例如再改成
@echo off
for /f "tokens=2,3,*" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\software\tencent\qq /v Install') do (set "x=%%j")
echo %x%
pause
也是一样的
回复

使用道具 举报

8#
发表于 2008-1-13 13:18:29 | 只看该作者
wowfans兄似乎没有考虑路径值中可能有空格的情况。
回复

使用道具 举报

9#
 楼主| 发表于 2008-1-13 19:51:01 | 只看该作者
应该没有楼上说的这个问题.
我这个例子里,输出结果是:C:\Program Files\Tencent\qq\,中间带空格的.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-16 05:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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