Я создаю скрипт для установки пакета обновления для соответствующей версии Windows.
Поэтому я хочу, чтобы скрипт определил версию Windows, на которой я работаю, и установил пакет обновления, а затем выполнил команду для запуска установщика пакета обновления.
Я знаю, что могу сделать wmic os get Caption
чтобы получить версию окна, и wmic os get ServicePackMajorVersion
для получения пакета обновления.
И я могу start /wait %~dp0\servicepack.exe
чтобы запустить пакет обновления, но я не знаю, как соединить эти команды, поэтому, если у меня Windows 7 без пакета обновления, он установит Windows 7 пакет обновления, но если я на сервере Windows, он установит пакет обновления сервера Windows. Какие-нибудь мысли?
Поэтому я провел небольшое исследование и придумал это:
wmic os get Caption
if /i {Caption}=={Microsoft Windows Server 2008 *} goto :WinS
if /i {Caption}=={Microsoft Windows Vista *} goto :WinV
if /i {Caption}=={Microsoft Windows 7 *} goto :Win7
if /i {Caption}=={Microsoft Windows 8 *} goto :Win8
if /i {Caption}=={Microsoft Windows 8.1 *} goto :Win8.1
echo Windows Version not Suported!
pause
exit
:WinS
wmic os get ServicePackMajorVersion
if /i {ServicePackMajorVersion}=={0} start /wait %~dp0\servicepackSV1.exe
if /i {ServicePackMajorVersion}=={1} start /wait %~dp0\servicepackSV2.exe
if /i {ServicePackMajorVersion}=={2} goto :GoodtoGo
echo Service Pack Installed!!
goto :
:WinV
wmic os get ServicePackMajorVersion
if /i {ServicePackMajorVersion}=={0} start /wait %~dp0\servicepackSV1.exe
if /i {ServicePackMajorVersion}=={1} start /wait %~dp0\servicepackSV2.exe
if /i {ServicePackMajorVersion}=={2} goto :GoodtoGo
echo Service Pack Installed!!
goto :
:Win7
wmic os get ServicePackMajorVersion
if /i {ServicePackMajorVersion}=={0} start /wait %~dp0\servicepack7.exe
if /i {ServicePackMajorVersion}=={1} goto :GoodtoGo
echo Service Pack Installed!!
goto :
:Win8
echo No service pack needed!
goto
:Win8.1
wmic qfe get hotfixid | find "KB2919355"
if %errorlevel%==0 goto :GoodtoGo
start /wait %~dp0\win8.exe
goto :
:GoodtoGo
echo The Latest ServicePack is allready installed! you'r GoodtoGo!
goto
Я еще не проверял, но будет ли это работать?