标题: [已解决]批处理读取注册表内的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
- @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%"=="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
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |