标题: [注册表类] 批处理怎样判断注册表中的键值是否存在,并根据判断做出动作? [打印本页]
作者: Derekwong 时间: 2014-9-17 00:28 标题: 批处理怎样判断注册表中的键值是否存在,并根据判断做出动作?
要求:
1、判断注册表中的网站信任站点中是否包含abc.com
2、如果包含,直接打开IE,abc.com
3、如果不包含,将该网站添加进信任列表,再打开abc.com.
网站信任站点在注册表中对应的地方是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains
------------------------------------------------------------------------------------------------------------------------------------------------------------
//因不懂BAT,所以在网站找了很多帖子看了,自己摸索着写了一个,但有时会同时打开2个IE,也感觉代码很乱,请高手帮忙优化,非常感谢。- reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http |findstr "http" &&start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com ||rem 添加www.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\www" /v http /t REG_DWORD /d 0x00000002 /f
-
- rem 添加oa.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\oa" /v http /t REG_DWORD /d 0x00000002 /f
-
- rem 添加*.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http /t REG_DWORD /d 0x00000002 /f
-
- start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
复制代码
作者: Batcher 时间: 2014-9-17 11:16
- reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http
- if errorlevel 1 (
- rem 添加www.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\www" /v http /t REG_DWORD /d 2 /f
- rem 添加oa.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\oa" /v http /t REG_DWORD /d 2 /f
- rem 添加*.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http /t REG_DWORD /d 2 /f
- ) else (
- start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
- )
复制代码
作者: Derekwong 时间: 2014-9-17 12:53
本帖最后由 Derekwong 于 2014-9-17 13:01 编辑
回复 2# Batcher
谢谢管理员,你的代码很好,结果测试发现还有一个问题没有解决,就是:
当信任站点中没有abc.com时,要做的动作是2个:
1、添加abc.com到信任站点
2、添加完后,再打开abc.com。
管理员给的代码,缺少第2个动作,我尝试直接把 start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" 127.0.0.1 加到第一部分的后面,如下:- reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http
- if errorlevel 1 (
- rem 添加www.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\www" /v http /t REG_DWORD /d 2 /f
- rem 添加oa.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\oa" /v http /t REG_DWORD /d 2 /f
- rem 添加*.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http /t REG_DWORD /d 2 /f
- start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
- ) else (
- start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
- )
复制代码
这样加完还是不成功,在没有信任站点的时候,执行了添加动作,但添加完后,没有执行打开IE的动作,麻烦管理员再看看。
作者: Derekwong 时间: 2014-9-17 13:06
再追问一个,这个BAT打开后一个小CMD窗口弹出,执行完就没了,有没有什么办法,让CMD窗口不显示,
如果可以麻烦一并加入到以上代码中,感谢管理员。
作者: Batcher 时间: 2014-9-17 13:41
回复 3# Derekwong - reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http
- if errorlevel 1 (
- rem 添加www.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\www" /v http /t REG_DWORD /d 2 /f
- rem 添加oa.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\oa" /v http /t REG_DWORD /d 2 /f
- rem 添加*.abc.com为信任站点
- reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http /t REG_DWORD /d 2 /f
- )
- start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
复制代码
把代码保存为test.bat
不要用reg.bat或start.bat
作者: Derekwong 时间: 2014-9-17 15:13
回复 5# Batcher
谢谢管理员回复,这样写是不是无论信任站点在不在执行2个动作,先添加信任站点,再打开IE。
作者: Batcher 时间: 2014-9-17 15:34
回复 6# Derekwong
是的。这样不符合你的需求吗?
作者: Derekwong 时间: 2014-9-18 08:42
回复 7# Batcher
是的,跟我的需求有点不同,我的需求是:
A:如果信任站点已存在,就直接打开网站(不用再添加信任站点)。
B:如果信任站点不存在,那么先添加信任站点,再打开网站
麻烦管理员再修改一下,谢谢。
作者: Batcher 时间: 2014-9-18 12:28
回复 8# Derekwong
5楼的代码就是这样执行的,你测试的时候发现问题了吗?
作者: Derekwong 时间: 2014-9-18 13:47
回复 9# Batcher
感谢管理员的回复,因为我只看到一个IF判断,所以我以为只是做了一次判断。
而且测试的时候没办法发现问题,因为运行出来的实际效果都是一样的。就是不知道过程怎么来测试。
作者: Batcher 时间: 2014-9-18 14:05
回复 10# Derekwong
这样测试一下看看
@echo off
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http
if errorlevel 1 (
echo 信任站点不存在,先添加信任站点;如果没有看到这个提示,那就是直接打开网站(不用再添加信任站点)
rem 添加www.abc.com为信任站点
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\www" /v http /t REG_DWORD /d 2 /f
rem 添加oa.abc.com为信任站点
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\oa" /v http /t REG_DWORD /d 2 /f
rem 添加*.abc.com为信任站点
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http /t REG_DWORD /d 2 /f
)
start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
pause
作者: Derekwong 时间: 2014-9-18 14:26
回复 11# Batcher
感谢管理员,这样测试是成功的,另外我想请教下,有没什么办法可以直接看到(或记录)BAT的整个运行过程。
作者: Batcher 时间: 2014-9-18 14:57
回复 12# Derekwong
把11楼代码里面的 @echo off 删掉
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |