中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理能取得注册表指定值吗?
« [1] [2] »
作者:
标题: 批处理能取得注册表指定值吗? 上一主题 | 下一主题
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『楼 主』:  批处理能取得注册表指定值吗?

已知参数值
SET a=SQLEXPRESS1
如何取得注册表目录HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS1\Setup下数值名称为SQLPath的数值数据
并返回给参数 b



我是菜鸟我怕谁
2007-9-29 15:53
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  



  Quote:
Originally posted by yyf0346 at 2007-9-29 03:53 PM:
已知参数值
SET a=SQLEXPRESS1
如何取得注册表目录HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS1\Setup下数值名称为SQLPath的数值数据
并返回给参数 b

需要用变量a来替换红色部分吗?

2007-9-29 16:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 3 楼』:  

是啊,我刚才不在,不好意思啊 回复慢了,
是这样的,那个参数是用户输入的
SET /P a=请输入参数:
我另外问一下,如果用户输入的是abcd\SQLEXPRESS1
我怎么取的SQLEXPRESS1这部分呢?



我是菜鸟我怕谁
2007-9-29 16:22
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 4 楼』:  

@echo off
set /p a=请输入参数:
set a=%a:*\=%
for /f "delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\%a%\Setup"^|find /i "SQLPath"') do echo %%i
pause

没条件测试,自己看下

2007-9-29 16:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 5 楼』:  

好的 谢谢你 我测试看看



我是菜鸟我怕谁
2007-9-29 16:51
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 6 楼』:  

谢谢你,测试是成功的,不过我是菜鸟啊
屏幕显示:
SQLPath   REG_SZ  E:\Program Files\Microsoft SQL Server\MSSQL.2
我想要取得“E:\Program Files\Microsoft SQL Server\MSSQL.2”这个部分的字符串呀,怎么办呢?最好放在一个参数里



我是菜鸟我怕谁
2007-9-29 17:10
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 7 楼』:  

@echo off
set /p a=请输入参数:
set a=%a:*\=%
for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\%a%\Setup"^|find /i "SQLPath"') do echo %%j
pause

2007-9-29 17:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 8 楼』:  

谢谢你!你太强了,以后有问题就请教你了啊



我是菜鸟我怕谁
2007-9-29 17:27
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by wudixin96 at 2007-9-29 05:19 PM:
@echo off
set /p a=请输入参数:
set a=%a:*\=%
for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\%a%\Setup"^|find /i &quo ...

我在你这个代码下边加上这段:
set rep=%%j
echo %rep%
显示内容怎么是%j 呢,就是显示%j这两个字符出来,为什么呀》



我是菜鸟我怕谁
2007-9-29 19:57
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 10 楼』:  

@echo off
set /p a=请输入参数:
set a=%a:*\=%
for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\%a%\Setup"^|find /i "SQLPath"') do echo %%j
pause


麻烦wudixin告诉我一下,下边的代码没有问题,的确是在屏幕上显示了我想要的值,可是我不知道这个值是放在哪个参数里?是%%j吗?
可是当我在pause下边加上这段语句:
set a=%%j
echo %a%
这个时候显示出来的就不是那个值了,能告诉我为什么吗?



我是菜鸟我怕谁
2007-9-29 20:08
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 11 楼』:  

要在for里赋值

2007-9-29 20:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 12 楼』:  

如果我定义一个参数
set a=
那要怎么把那个找到的值赋值给a呢,能帮我实现吗?我实在不懂呀.......



我是菜鸟我怕谁
2007-9-29 20:28
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 13 楼』:  

wudixin
大哥啊,你到哪里去啦?



我是菜鸟我怕谁
2007-9-29 21:05
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 14 楼』:  

wudixin人呢?
呵呵,这是我关于这个问题的最后一个疑问了,对于bat批处理我是刚开始学的,所以..............
你快出来呀



我是菜鸟我怕谁
2007-9-29 21:52
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 15 楼』:  

@echo off
set /p a=请输入参数:
set a=%a:*\=%
for /f "tokens=2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\%a%\Setup"^|find /i "SQLPath"') do set a=%%j
echo %a%
pause


不好意思,看电视去了,o(∩_∩)o...

是上面这个意思吗??

2007-9-29 21:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: