中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]批处理判断操作注册表的问题
作者:
标题: [已解决]批处理判断操作注册表的问题 上一主题 | 下一主题
lzymbz
初级用户




积分 114
发帖 8
注册 2005-4-21
状态 离线
『楼 主』:  [已解决]批处理判断操作注册表的问题

@echo off
for /f "skip=4 delims=" %%s in ('reg query "HKEY_CURRENT_USER\Control Panel" /v opened') do set a=%%s
if "%a:~-1,1%"=="1" start A.exe
if "%a:~-1,1%"=="2" start B.exe
if "%a:~-1,1%"=="3" start c.exe
pause


这是在别的地方看到的一个例子  

现在想   判断一个注册表位置
根据数值修改

@echo off
for /f "skip=4 delims=" %%s in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v Start Page') do set a=%%s
if "%a:~-1,1%"=="http://www.xxx.com/" start ***
if "%a:~-1,1%"=="2" start B.exe
pause

提示
错误:命令行参数太多
此时不应有start。

我现在想达到的目的就是  好比   Start Page   


如果是http://www.999.com/

直接推出


http://www.xxx.com/
就把http://www.xxx.com/改为  http://www.yyy.com/

如果是http://www.ooo.com/   改为   http://www.ppp.com/



如果以上都不是  也退出



其中  http://www.999.com/     这类地址没有规律   需要在批处理中指定

谢谢   麻烦大家了

[ Last edited by lzymbz on 2009-5-20 at 11:28 ]

2009-5-20 00:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
newxso
初级用户

l i u s s


积分 73
发帖 101
注册 2008-9-17
来自 GZ
状态 离线
『第 2 楼』:  

请记住,在同一个参数内容中存在空格,用双引号:

reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page"

在你的批处理中只保留以上一句,看看结果,再确定 for 语句形式,不能搬其它代码,因为结果不同。

2009-5-20 01:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 3 楼』:  


@echo off
set "New="
set RegPath="HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main"
for /f "skip=4 tokens=4" %%a in ('reg query %RegPath% /v "Start Page"') do (
  if /i "%%a"=="http://www.xxx.com/" set New="http://www.yyy.com/"
  if /i "%%a"=="http://www.ooo.com/" set New="http://www.ppp.com/"
)
if defined New reg add %RegPath% /v "Start Page" /d %New% /f


2009-5-20 01:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lzymbz
初级用户




积分 114
发帖 8
注册 2005-4-21
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by tireless at 2009-5-20 01:27 AM:
[code]@echo off
set "New="
set RegPath="HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main"
for /f "skip=4 tokens=4" %%a in ('reg query %RegPath% /v " ...

你好
这个好像不起作用啊
我的是xp sp3系统   您给再看看       再一个   这个中 那个地址是不修改退出的啊      好像没有写


不好意思   360打开着呢     可以用的

谢谢你

[ Last edited by lzymbz on 2009-5-20 at 11:27 ]

2009-5-20 10:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: