Board logo

标题: [已解决]批处理判断操作注册表的问题 [打印本页]

作者: lzymbz     时间: 2009-5-20 00:37    标题: [已解决]批处理判断操作注册表的问题
@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 ]

作者: newxso     时间: 2009-5-20 01:03
请记住,在同一个参数内容中存在空格,用双引号:

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

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

作者: tireless     时间: 2009-5-20 01:27
@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

作者: lzymbz     时间: 2009-5-20 10:01
Originally posted by tireless at 2009-5-20 01:27 AM:
@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 ]