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

[系统相关] 批处理怎样判断IE版本?

先前有批處理能夠判斷IE版本,但自從IE10、IE11開始便會判斷成IE9
請高手幫幫忙解決,謝謝
  1. for /f "skip=2 delims=." %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version') do set a=%%i
  2. set b=%a:~-1%
  3. echo %b%
复制代码

  1. @echo off
  2. for /f "delims=." %%i in ('wmic datafile where name^="C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE" get Version ^|findstr /i /c:"."') do echo IE Version:%%i
  3. pause>nul
复制代码
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

IE9以上的还需要判断 svcVersion
Note  The version string value for Internet Explorer 10 is 9.10.9200.16384, and the svcVersion string value is 10.0.9200.16384.

你可以查看微软建议的判断方法
http://support.microsoft.com/kb/969393

TOP

回复 2# andyrave


這個方式的確也可行,謝謝您!

但還是希望能用判斷註冊表的方式,不知道有沒有辦法?

TOP

回复 4# 飛雪
  1. reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version
复制代码
你找个IE10/11的系统运行这个命令把结果贴出来看看

TOP

回复 4# 飛雪


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
    Version    REG_SZ    9.10.9200.16384


注册表 截取第二数字段 要判断是0 还是10 还是11 又要多写一段东西

wmic 系统自带服务  代码越简单越好
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

回复 6# andyrave


如果大師方便的話,還是麻煩您幫個小忙

拜託了!

TOP

回复 7# 飛雪

不敢称大师  大家交流一下

晚了 加了点东西 如有不足 勿怪
  1. @echo off
  2. for /f "skip=2 tokens=3 delims= " %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version') do set a=%%i
  3. set b=%a:~0,1%
  4. set c=%a:~2,1%
  5. set d=%a:~2,2%
  6. if %b% LSS 9 (echo IE Version:%b%&&pause>nul&&exit) else goto next
  7. :next
  8. if %c% EQU 0 (echo IE Version:%b%&&pause>nul&&exit) else goto next
  9. :next
  10. echo IE Version:%d%
  11. pause>nul
复制代码
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

回复 8# andyrave


謝謝您,可以正常判斷 ie10;ie11兩位數
但單位數的ie6、7、8;9則不行

TOP

回复 9# 飛雪

用的是win8 没有ie 7 8 9可测试

ie版本号借用http://support.microsoft.com/kb/969393 测试

取了 7 8 9的版本号 测试正确

你手上有 7 8 9 ie的话

分别 用代码 把版本号复制上来看看
  1. for /f "skip=2 tokens=3 delims= " %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version') do echo %%i
复制代码
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

本帖最后由 飛雪 于 2013-5-5 12:33 编辑

IE6、7、8在XP下不顯示任何版本

IE8顯示: 8.0.7601.17514
IE9顯示: 9.0.8112.16421
IE10顯示: 9.10.9200.16540

值得注意的是,在XP底下無法顯示IE所有版本,但在 WIN7底下卻可以正確顯示IE8、9、10

TOP

回复 11# 飛雪


    IE6、7、8在XP下不顯示任何版本

手上没有xp系统可测试 注册表可能和nt6的不一样 那就要先判断系统版本 找到注册表项 再截取ie版本

:) :)
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

回复 12# andyrave


XP的,請參考

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer]
"Build"="86001"
"Version"="8.0.6001.18702"
"W2kVersion"="8.0.6001.18702"
@=""
"IntegratedBrowser"=dword:00000001
"MkEnabled"="Yes"
"No3DBorder"=dword:00000000
"SmartDithering"=dword:00000001
"PhishingFilter"=dword:00000002
"DownloadUI"="{802F530B-A8F6-4631-AE49-6BACAAC6373E}"

TOP

或许可以这样?
  1. @echo off&setlocal enabledelayedexpansion
  2. set reg=reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer"
  3. for %%i in (svcVersion Version) do (
  4.    for /f "delims=" %%a in ('%reg% /v %%i 2^>nul^|find /i "%%i"') do (
  5.       set "str=%%a"
  6.       for /f "delims=." %%b in ("!str:*reg_sz=!") do set /a v=%%b
  7.    )
  8.    if defined v echo !v!&pause&goto :eof
  9. )
复制代码

TOP

回复 14# apang


謝謝您,XP底下也可以正常判斷了!!!

但如果還想延伸下去該如何做?

例如判斷是IE6,想要 goto ie6
繼續運行想在ie6做的動作

TOP

返回列表