Прежде чем углубляться в детали, я хотел бы подчеркнуть тот факт, что использование PowerShell не является вариантом, поскольку предполагается, что сценарий запускается на компьютере, где PowerShell может быть недоступен.
Мне нужно проверить версию Internet Explorer, установленную на компьютере с Windows, и действовать в зависимости от того, какая это версия.
Пока мой пакетный скрипт выглядит так:
@echo off
setlocal
for /f "tokens=*" %%a in ( 'reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer" /v Version' ) do ( set IEVerReg=%%a )
endlocal
Как видите, я присваиваю вывод reg query
переменной IEVarReg. Выходные данные различаются в разных версиях Windows, примеры:
Windows XP:
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
Version REG_SZ 8.0.6001.18702
Windows 7:
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
Version REG_SZ 9.0.8112.16421
В идеале, я хотел бы получить первую цифру из номера версии и сделать что-то вроде:
if
version == 8
then
execute this
elseif
version == 9
then
execute that
Я уверен, что выясню, как выполнить часть if
, как только я получу номер версии, но я не могу понять, какую часть получить номер версии. Я мог бы сделать это легко в bash, perl и т. Д., Но понятия не имею о командной строке Windows.
Помощь будет очень признательна.
PS. Я видел сценарий Джерольда Шульмана , но он возвращает весь номер версии, что для меня слишком много.