Board logo

标题: [系统相关] 批处理怎样判断IE版本? [打印本页]

作者: 飛雪    时间: 2013-4-6 14:35     标题: 批处理怎样判断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%
复制代码

作者: andyrave    时间: 2013-4-28 05:57

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

作者: Spring    时间: 2013-4-28 10:47

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
作者: 飛雪    时间: 2013-5-3 17:04

回复 2# andyrave


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

但還是希望能用判斷註冊表的方式,不知道有沒有辦法?
作者: BAT-VBS    时间: 2013-5-3 17:57

回复 4# 飛雪
  1. reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version
复制代码
你找个IE10/11的系统运行这个命令把结果贴出来看看
作者: andyrave    时间: 2013-5-4 17:37

回复 4# 飛雪


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
    Version    REG_SZ    9.10.9200.16384


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

wmic 系统自带服务  代码越简单越好
作者: 飛雪    时间: 2013-5-5 00:17

回复 6# andyrave


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

拜託了!
作者: andyrave    时间: 2013-5-5 01:49

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

作者: 飛雪    时间: 2013-5-5 06:56

回复 8# andyrave


謝謝您,可以正常判斷 ie10;ie11兩位數
但單位數的ie6、7、8;9則不行
作者: andyrave    时间: 2013-5-5 11:14

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

作者: 飛雪    时间: 2013-5-5 11:36

本帖最后由 飛雪 于 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
作者: andyrave    时间: 2013-5-5 20:21

回复 11# 飛雪


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

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

:) :)
作者: 飛雪    时间: 2013-5-9 19:30

回复 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}"
作者: apang    时间: 2013-5-9 22:15

或许可以这样?
  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. )
复制代码

作者: 飛雪    时间: 2013-5-9 23:27

回复 14# apang


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

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

例如判斷是IE6,想要 goto ie6
繼續運行想在ie6做的動作
作者: apang    时间: 2013-5-9 23:57

回复 15# 飛雪
  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 goto :ie!v!
  9. )
  10. :ie6
  11. echo ...
  12. pause&goto :eof
  13. :ie10
  14. echo ...
  15. pause&goto :eof
复制代码

作者: 飛雪    时间: 2013-5-10 17:46

回复 16# apang


謝謝
NT5.X
NT6.X都可以使用
作者: 不知道是谁    时间: 2018-9-3 17:41

  1. @echo off
  2. for /f "skip=2 tokens=3 delims= " %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version') do (
  3.         for /f "tokens=1,2 delims=." %%a in ("%%i") do (
  4.                 if %%b equ 0 (set ver=%%a) else set ver=%%b
  5.         )
  6. )
  7. echo 当前浏览器版本:Internet Explorer %ver%
  8. pause >nul
复制代码
  1. @echo off
  2. for /f "skip=2 tokens=1,2 delims=." %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Internet Explorer" /v Version') do (
  3.         set str=%%i&set ver=%%j
  4. )
  5. if %ver% equ 0 set ver=%str:~-1%
  6. echo 当前浏览器版本:Internet Explorer %ver%
  7. pause >nul
复制代码





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