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

[已解决]批处理读取注册表内的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 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  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
复制代码
1

评分人数

TOP

原帖由 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%"= ...

大大 可以解释一下么?

TOP

走过路过还看过——发那么多重复帖,什么都不懂怎么说——说不得说不得
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

标题

查找注册表含version的项再读取数字
兵甲前辈,你知道为什么不说呢,消遣别人很有意思吗?不是来这里的人都是真心用心学的。

TOP

回复 7楼 的帖子

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

[ 本帖最后由 Skyfengluo 于 2010-10-24 13:58 编辑 ]

TOP

8楼

你可以把echo %a%的结果贴出来吗?

TOP

回复 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

TOP

最终解决代码     (这个批出理拿着改一改应该可以应用到很多地方哦。 这个是我看了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 编辑 ]

TOP

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

[ 本帖最后由 leap 于 2010-10-24 22:06 编辑 ]

TOP

回复 9# Skyfengluo


IE 10好像就會判斷成IE 9了...

TOP

我记的BECHER说过一句话很经典,“论谈是大家的,要大家一起玩”,所以维护也需要大家,几个人也仅仅是途劳的。
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

返回列表