Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС

Ответить
Настройки темы
CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Может кто-нибудь поделится скриптом который возвращает версию ОС и ее сервис пак в консоли , с последующим запуском файла в консоли или подсказать соответствие версии сборок ОС (Nt,2k,2k server,xp, 2k3, vista) сервис пакам для нижеприведенного скрипта.

Цитата:
for /F "tokens=4" %%V in ('ver') do if %%V==[Версия goto

Отправлено: 02:10, 27-05-2009

 

Аватара для sLiDeR-X

Ветеран


Автор проектов


Сообщения: 1202
Благодарности: 280

Профиль | Отправить PM | Цитировать


Ageron, причем здесь процессор.
Насколько я понял, этот параметр показывает версию системы, а не процессора.
http://forum.oszone.net/thread-150321.html

-------
Конструктор RDS_Boot_KIT и комплект Recovery DiskSuite


Отправлено: 11:22, 26-04-2012 | #41



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 59
Благодарности: 7

Профиль | Отправить PM | Цитировать


Точнее тип системы
и про какие 64-бит процессоры идет речь? На Итаниумы 32-бит винду на поставишь (%PROCESSOR_ARCHITECTURE%=IA64)
во всех остальных случаях зависит от разрядности ОС

ultra_fs, в русской 7ке ver возвращает Microsoft Windows [Version 6.1.7601]

Отправлено: 19:38, 30-07-2012 | #42


Пользователь


Сообщения: 59
Благодарности: 7

Профиль | Отправить PM | Цитировать


Определение языка
тк не на всех русских через VER получается определить
В висте и 2008 не проверял - нет под рукой

for /f "tokens=4" %%a in ('chcp') do set CP=%%a
chcp 1251 >nul 2>nul
ver | find "Version">nul && set lng=eng
::Это например для Русской 7ки Professional которая стоит у меня на ноуте - ленгвич паков никаких нет - честно купленная в 2011 коробочная версия
set /? | find "переменных среды">nul && set lng=rus
::Это в русском XP и 2003.
ver | find "Версия">nul && set lng=rus
chcp %CP% >nul 2>nul

переключение кодовой страницы - что бы командная find воспринял кодировку 1251
запоминание - что бы по выходу вернуть ее взад

Отправлено: 20:13, 30-07-2012 | #43


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


По выше приведённым примерам собрал скрипт. Скрипт проверил(рабочий) на Win XP home и Win 7. К сожалению не могу проверить на других осях.
Обращаюсь к специалистам с просьбой проверить скрипт на грамотность написания, и по возможности внести поправки (необходимо, чтобы скрипт работал на всей NT-линейке включая x64):
Код: Выделить весь код
@echo off

Cls
Echo Сейчас будет создана новая задача для "Prog.exe".
Pause

Rem Наличие установленной программы:

If exist "%ProgramFiles%\Prog\Prog.exe" GoTo More
If not exist "%ProgramFiles%\Prog\Prog.exe" GoTo Error

:Error
Cls
Echo Файл "%ProgramFiles%\Prog\Prog.exe" не найден!
Echo Продолжение невозможно.
Pause
Exit

Rem Название операционной системы:

:More
For /F "Tokens=2* Delims=	 " %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V ProductName^|Find "REG_SZ"') Do Set OS1=%%B

Rem Версия операционной системы:

For /F "Tokens=2 Delims=[]" %%i In ('ver') Do (
 For /F "Tokens=2,3 Delims=. " %%a In ("%%i") Do Set version=%%a.%%b
)

If "%version%"=="5.0" GoTo End
If "%version%"=="5.1" GoTo End
If "%version%"=="5.2" GoTo End
If "%version%"=="6.0" GoTo Task
If "%version%"=="6.1" GoTo Task
If "%version%"=="6.2" GoTo Warning

:End
Cls
Echo На %OS1% отсутствует
Echo необходимость в создания данной задачи...
Pause
Exit

:Warning
Cls
Echo Задача не тестировалась на %OS1%!
Echo Введите "Y" чтобы продолжить,
Echo или "N" чтобы выйти из программы.

:Again
Set /p Input=">>> "
If /i Not "%Input%"=="N" (
 If /i Not "%Input%"=="Y" (
  Echo Введите: Y или N
  GoTo Again
 )
)
If /i "%Input%"=="Y" GoTo Task
If /i "%Input%"=="N" Exit

Rem Создание задачи:

:Task
Cls
Echo Создание задачи для "Prog.exe" . . .

Rem код дальше...
В частности интересует реализация определения имени/версии ОС.
Рассматривал вариант получения версии из реестра:
Код: Выделить весь код
For /F "Tokens=3" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion^|Find "REG_SZ"') Do Set Version=%%A
@Echo %Version%
А также упрощённый вариант(без определения имени ОС):
Код: Выделить весь код
For /F "Tokens=2 Delims=[]" %%i In ('ver') Do (
 For /F "Tokens=2,3 Delims=. " %%a In ("%%i") Do Set version=%%a.%%b
)
If "%version%"=="5.1" GoTo WindowsXP

:WindowsXP
Echo На Windows XP отсутствует
Echo необходимость в создания данной задачи...

Последний раз редактировалось Lucretius, 30-01-2013 в 19:47.


Отправлено: 21:43, 23-01-2013 | #44


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Lucretius:
на всей NT-линейке. »
Начиная с NT 3.1, надо полагать?

Отправлено: 21:53, 23-01-2013 | #45


Пользователь


Сообщения: 65
Благодарности: 7

Профиль | Отправить PM | Цитировать


Прошу прощения за неточность, начиная с NT 5.0(Win2k).

Отправлено: 22:04, 23-01-2013 | #46


Новый участник


Сообщения: 14
Благодарности: 2

Профиль | Отправить PM | Цитировать


:: одной строкой - проверка на вин7 русскую х64
ver | find "6.1" >nul && set /? | find "переменных" >nul && if "%ProgramW6432%" Neq "" start /wait vcredist_x64_2012.exe /passive /norestart

Последний раз редактировалось Super_Kolobok, 30-01-2013 в 21:16.


Отправлено: 21:10, 30-01-2013 | #47


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Super_Kolobok:
проверка на вин7 русскую х64 »
Или Server 2008 R2 .

Отправлено: 01:36, 31-01-2013 | #48


Аватара для Fortress1

Пользователь


Сообщения: 137
Благодарности: 8

Профиль | Отправить PM | Цитировать


у меня есть две винды - 7 и 8. Помогите плиз создать батник который будет определять 7 это или 8, после определения запускать ЕСЛИ 7ка ----> MS Office Starter, ЕСЛИ 8ка - Libre Office.
Заранее спасибо

Если возможно чтобы этот батник мог это же самое делать, только в зависимости от разрядности системы

Отправлено: 19:57, 31-01-2013 | #49


Новый участник


Сообщения: 14
Благодарности: 2

Профиль | Отправить PM | Цитировать


Если вин7х64 то установить Стартер, если х32 то Либру
ver | find "6.1" >nul && if "%ProgramW6432%" Neq "" (start /wait /d "office\Office2010Starter_RU\" SetupConsumerC2R.exe) else (start /wait /d "office\libre\" msiexec /qb! /i LibO_3.6.5_Win_x86_install_multi.msi ALLUSERS=1 CREATEDESKTOPLINK=1 REGISTER_ALL_MSO_TYPES=1 ISCHECKFORPRODUCTUPDATE=0 %LANG%)

Если вин8х64 то установить Либру, если х32 то Стартер
ver | find "6.2" >nul && if "%ProgramW6432%" Neq "" (start /wait /d "office\libre\" msiexec /qb! /i LibO_3.6.5_Win_x86_install_multi.msi ALLUSERS=1 CREATEDESKTOPLINK=1 REGISTER_ALL_MSO_TYPES=1 ISCHECKFORPRODUCTUPDATE=0 %LANG%) else (start /wait /d "office\Office2010Starter_RU\" SetupConsumerC2R.exe)

Последний раз редактировалось Super_Kolobok, 01-02-2013 в 17:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:15, 01-02-2013 | #50



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Управление FireWall через GPO на Windows без сервис пака. exo Microsoft Windows NT/2000/2003 3 28-09-2009 12:52
Разное - [решено] Изменение метки установленного сервис пака Midge Microsoft Windows 2000/XP 1 24-05-2009 23:02
Microsoft официально запускает XP SP3. Чего следует ожидать от нового сервис пака? OSZone News Новости и события Microsoft 8 23-04-2008 08:09
Определение версии сервис пака по файлам дистрибутива Sparkster Microsoft Windows 2000/XP 3 07-05-2007 22:26
Как изменить версию сервис пака tualatin Microsoft Windows NT/2000/2003 12 10-06-2005 17:03




 
Переход