Показать полную графическую версию : [решено] Определение версии (сборки) и сервис пака ОС
sLiDeR-X
26-04-2012, 11:22
Ageron, причем здесь процессор.
Насколько я понял, этот параметр показывает версию системы, а не процессора.
http://forum.oszone.net/thread-150321.html
Точнее тип системы
и про какие 64-бит процессоры идет речь? На Итаниумы 32-бит винду на поставишь (%PROCESSOR_ARCHITECTURE%=IA64)
во всех остальных случаях зависит от разрядности ОС
ultra_fs, в русской 7ке ver возвращает Microsoft Windows [Version 6.1.7601]
Определение языка
тк не на всех русских через 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
запоминание - что бы по выходу вернуть ее взад
Lucretius
23-01-2013, 21:43
По выше приведённым примерам собрал скрипт. Скрипт проверил(рабочий) на 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 необходимость в создания данной задачи...
на всей NT-линейке. »
Начиная с NT 3.1, надо полагать?
Lucretius
23-01-2013, 22:04
Прошу прощения за неточность, начиная с NT 5.0(Win2k).
Super_Kolobok
30-01-2013, 21:10
:: одной строкой - проверка на вин7 русскую х64
ver | find "6.1" >nul && set /? | find "переменных" >nul && if "%ProgramW6432%" Neq "" start /wait vcredist_x64_2012.exe /passive /norestart
проверка на вин7 русскую х64 »
Или Server 2008 R2 ;).
Fortress1
31-01-2013, 19:57
у меня есть две винды - 7 и 8. Помогите плиз создать батник который будет определять 7 это или 8, после определения запускать ЕСЛИ 7ка ----> MS Office Starter, ЕСЛИ 8ка - Libre Office.
Заранее спасибо
Если возможно чтобы этот батник мог это же самое делать, только в зависимости от разрядности системы
Super_Kolobok
01-02-2013, 11:15
Если вин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)
Fortress1
02-02-2013, 14:06
Если вин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) »
Спасибо огромное, только нужно, чтобы
Если вин7х64(x86) то установить Стартер, если вин8х64(x86) то Либру
И возможно ли будет вместо оригинального Либре вставить обрезанную версию(репак) со своими ключами?
Lucretius
03-02-2013, 15:08
Подскажите, как объединить в блок:
If "%version%"=="5.0" GoTo End
If "%version%"=="5.1" GoTo End
If "%version%"=="5.2" GoTo End
for %%i in (5.0 5.1 5.2) do if %%i equ %version% …
Lucretius
03-02-2013, 20:40
for %%i in (5.0 5.1 5.2) do if %%i equ %version% … »
Спасибо!
Fortress1
07-02-2013, 15:07
@echo
color 0A
echo.
set CurrentOS=notOS
ver|find "6.0">nul&&set CurrentOS=Windows7
ver|find "6.1">nul&&set CurrentOS=Windows7
ver|find "6.2">nul&&set CurrentOS=Windows8
if %CurrentOS%==notOS (
echo _________________________
echo.
echo !ERROR! OS not supported.
echo _________________________
echo.
pause
exit
)
if %CurrentOS%==Windows7(
start /wait "c:\Program Files (x86)\Microsoft Office\Options14\MSOO.exe"
)
if %CurrentOS%==Windows8(
start /wait d:\BSPOST\Install\LibreOffice.exe
)
Подскажите ребят пожалуйста в чем тут моя ошибка....Я выше уже писал...установить на 7ку офис из ПФ, а на 8ку либру.
Заранее спасибо
if %CurrentOS%==Windows7 (
"c:\Program Files (x86)\Microsoft Office\Options14\MSOO.exe"
) Else d:\BSPOST\Install\LibreOffice.exe
f %CurrentOS%==notOS (
echo _________________________
echo.
echo !ERROR! OS not supported.
echo _________________________
echo.
pause
exit
) »
Хе-хе узнаю свой код, написанный во время работы в hi... :-)
http://rghost.ru/43633381/thumb.png (http://rghost.ru/43633381/image.png)
Fortress1
08-02-2013, 13:24
Решил проблему вот этим
@echo off
set SYSTEMID=Windows 7
reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | find "Windows 8" >nul
if "%ERRORLEVEL%" == "0" set SYSTEMID=Windows 8
if "%SYSTEMID%" == "Windows 8" (
echo Windows 8
echo Installing Libre Office
"E:\BSPOST\Install\LibreOffice.exe"
echo Done
exit
)
echo Windows 7
echo Installing MS Office 2010
"c:\Program Files (x86)\Microsoft Office\Options14\MSOO.exe"
echo Done
exit
не запускает файл, только в каталог переводит »
1 Проверьте наличие и правильность написания пути\имени Вашего файла "E:\BSPOST\Install\LibreOffice.exe", может его и нет по этому пути?
2 Проверьте в процессах, появляется ли там процесс LibreOffice.exe
Fortress1
08-02-2013, 13:44
Gora гуру
Подскажи пожалуйста как в этот батник добавить
start /wait
и добавить автоопределение буквы флешки и автоопределение папки программ файлс (т.к. в 32 разрядных системах нет папки х86)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC