[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理怎样判断注册表中的键值是否存在,并根据判断做出动作?

要求:
1、判断注册表中的网站信任站点中是否包含abc.com
2、如果包含,直接打开IE,abc.com
3、如果不包含,将该网站添加进信任列表,再打开abc.com.

网站信任站点在注册表中对应的地方是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains

------------------------------------------------------------------------------------------------------------------------------------------------------------
//因不懂BAT,所以在网站找了很多帖子看了,自己摸索着写了一个,但有时会同时打开2个IE,也感觉代码很乱,请高手帮忙优化,非常感谢。
  1. 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为信任站点
  2. reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\www" /v http /t REG_DWORD /d 0x00000002 /f
  3. rem 添加oa.abc.com为信任站点
  4. reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\oa" /v http /t REG_DWORD /d 0x00000002 /f  
  5. rem 添加*.abc.com为信任站点
  6. reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http /t REG_DWORD /d 0x00000002 /f   
  7. start "" /min  "%systemdrive%\program files\internet explorer\iexplore.exe"    abc.com
复制代码

本帖最后由 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 加到第一部分的后面,如下:
  1. reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http
  2. if errorlevel 1 (
  3.     rem 添加www.abc.com为信任站点
  4.     reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\www" /v http /t REG_DWORD /d 2 /f
  5.     rem 添加oa.abc.com为信任站点
  6.     reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com\oa" /v http /t REG_DWORD /d 2 /f
  7.     rem 添加*.abc.com为信任站点
  8.     reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\abc.com" /v http /t REG_DWORD /d 2 /f
  9.     start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
  10. ) else (
  11.     start "" /min "%systemdrive%\program files\internet explorer\iexplore.exe" abc.com
  12. )
复制代码
这样加完还是不成功,在没有信任站点的时候,执行了添加动作,但添加完后,没有执行打开IE的动作,麻烦管理员再看看。

TOP

再追问一个,这个BAT打开后一个小CMD窗口弹出,执行完就没了,有没有什么办法,让CMD窗口不显示,

如果可以麻烦一并加入到以上代码中,感谢管理员。

TOP

回复 5# Batcher


    谢谢管理员回复,这样写是不是无论信任站点在不在执行2个动作,先添加信任站点,再打开IE。

TOP

回复 7# Batcher

是的,跟我的需求有点不同,我的需求是:

A:如果信任站点已存在,就直接打开网站(不用再添加信任站点)。

B:如果信任站点不存在,那么先添加信任站点,再打开网站

麻烦管理员再修改一下,谢谢。

TOP

回复 9# Batcher


    感谢管理员的回复,因为我只看到一个IF判断,所以我以为只是做了一次判断。

而且测试的时候没办法发现问题,因为运行出来的实际效果都是一样的。就是不知道过程怎么来测试。

TOP

回复 11# Batcher


    感谢管理员,这样测试是成功的,另外我想请教下,有没什么办法可以直接看到(或记录)BAT的整个运行过程。

TOP

返回列表