Board logo

标题: [已解决]批处理读取注册表内的IE版本并进行判断执行相应的命令 [打印本页]

作者: Skyfengluo    时间: 2010-10-22 20:08     标题: [已解决]批处理读取注册表内的IE版本并进行判断执行相应的命令

如何使用批处理读取出注册表内的IE版本并进行判断执行相应的命令
1读取注册表值
2对比注册表值
3判断注册表值
4执行相应命令

这是我写的但是还有很多地方不知道怎么弄
set system = reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer

if "%system%"=="1" goto xpIE6
if "%system%"=="2" goto XPIE7
if "%system%"=="3" goto VISTA
if "%system%"=="4" goto kjfsxp
if "%system%"=="5" goto kjfsvista
if "%system%"=="6" goto office
if "%system%"=="7" goto dycj
if "%system%"=="q" goto quit

[ 本帖最后由 Skyfengluo 于 2010-10-24 21:18 编辑 ]
作者: leap    时间: 2010-10-23 14:56

  1. @echo off
  2. for /f "skip=2 delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer" /v Version') do set a=%%i
  3. set b=%a:~-13%
  4. echo %b%
  5. if "%b%"=="1" goto xpIE6
  6. if "%b%"=="2" goto XPIE7
  7. if "%b%"=="3" goto VISTA
  8. if "%b%"=="4" goto kjfsxp
  9. if "%b%"=="5" goto kjfsvista
  10. if "%b%"=="6" goto office
  11. if "%b%"=="7" goto dycj
  12. if "%b%"=="q" goto quit
  13. pause
复制代码

作者: Skyfengluo    时间: 2010-10-23 21:41

原帖由 leap 于 2010-10-23 14:56 发表
@echo off
for /f "skip=2 delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer" /v Version') do set a=%%i
set b=%a:~-13%
echo %b%
if "%b%"=="1" goto xpIE6
if "%b%"= ...

大大 可以解释一下么?
作者: cjiabing    时间: 2010-10-24 09:03

走过路过还看过——发那么多重复帖,什么都不懂怎么说——说不得说不得
作者: leap    时间: 2010-10-24 11:22     标题: 标题

查找注册表含version的项再读取数字
兵甲前辈,你知道为什么不说呢,消遣别人很有意思吗?不是来这里的人都是真心用心学的。
作者: Skyfengluo    时间: 2010-10-24 13:53     标题: 回复 7楼 的帖子

lead前辈  昨天测试了 批出理貌似有点错误。。。运行达不到理想的效果,我用的WIN7的系统。。。  谢谢你的关注 呵呵。。
我现在想换一种方式来试试, 先读取注册表的值,写入到一个文本内,然后再判断文本内的字符进行判断来执行下面的命令。   不过正在测试 昨天晚上弄到凌晨2点也没弄出来。。呵呵 。。。。今天继续。。。 初学的菜鸟。。。请前辈多多指点。。。。

[ 本帖最后由 Skyfengluo 于 2010-10-24 13:58 编辑 ]
作者: leap    时间: 2010-10-24 14:01     标题: 8楼

你可以把echo %a%的结果贴出来吗?
作者: Skyfengluo    时间: 2010-10-24 14:14     标题: 回复 9楼 的帖子

运行结果
C:\Users\jinhe\Desktop>echo .0.7600.16385
.0.7600.16385

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "1" goto xpIE6

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "2" goto XPIE7

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "3" goto VISTA

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "4" goto kjfsxp

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "5" goto kjfsvista

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "6" goto office

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "7" goto dycj

C:\Users\jinhe\Desktop>if ".0.7600.16385" == "q" goto quit

C:\Users\jinhe\Desktop>echo     Version    REG_SZ    8.0.7600.16385
    Version    REG_SZ    8.0.7600.16385

C:\Users\jinhe\Desktop>pause


代码
for /f "skip=2 delims=" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer" /v Version') do set a=%%i
set b=%a:~-13%
echo %b%
if "%b%"=="1" goto xpIE6
if "%b%"=="2" goto XPIE7
if "%b%"=="3" goto VISTA
if "%b%"=="4" goto kjfsxp
if "%b%"=="5" goto kjfsvista
if "%b%"=="6" goto office
if "%b%"=="7" goto dycj
if "%b%"=="q" goto quit

echo %a%

pause
作者: Skyfengluo    时间: 2010-10-24 21:21

最终解决代码     (这个批出理拿着改一改应该可以应用到很多地方哦。 这个是我看了for 命令从入门到精通后进行修改的,建议大家去看看哦!呵呵)

for /f "skip=2 delims=." %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer" /v Version') do set a=%%i
这条命令中%a%的输出是

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
    Version    REG_SZ    8.0.7600.16385

delims=." 是读取点前面的字符  这里可以根据你需要判断的对象进行修改

set b=%a:~-1% 是读取点前面的“一个”字符 这里1%是一个字符2%是2个字符 可以根据你的需要进行修改。

我这里只读取 "点"前面的一个字符  也就是8  然后进行IF判断 并执行相关命令。

感谢lead大大的支持。。。。。有你这样热心助人的大大我们这些“新人”“菜鸟”才会变成老鸟哦  呵呵

最终批处理
@echo off
for /f "skip=2 delims=." %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer" /v Version') do set a=%%i
set b=%a:~-1%
echo %b%
if "%b%"=="6" goto IE6
if "%b%"=="7" goto IE7
if "%b%"=="8" goto IE8

:IE6
rem  这里在写针对不同版本IE的命令哦 呵呵
echo 这是ie6
pause

:IE7
echo 这是ie7
pause

:IE8
echo 这是ie8
pause

[ 本帖最后由 Skyfengluo 于 2010-10-24 22:05 编辑 ]
作者: leap    时间: 2010-10-24 22:02

不好意思在手机上网,我也是个菜鸟大家一起努力

[ 本帖最后由 leap 于 2010-10-24 22:06 编辑 ]
作者: 飛雪    时间: 2013-1-12 22:55

回复 9# Skyfengluo


IE 10好像就會判斷成IE 9了...
作者: wc726842270    时间: 2013-1-13 02:30

我记的BECHER说过一句话很经典,“论谈是大家的,要大家一起玩”,所以维护也需要大家,几个人也仅仅是途劳的。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2