PDA

Показать полную графическую версию : [решено] Определение версии (сборки) и сервис пака ОС


Страниц : 1 2 [3] 4

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

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

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

NoIZz
30-07-2012, 20:13
Определение языка
тк не на всех русских через 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 необходимость в создания данной задачи...

Iska
23-01-2013, 21:53
на всей 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

Iska
31-01-2013, 01:36
проверка на вин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

Iska
03-02-2013, 19:19
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ку либру.
Заранее спасибо

gora
07-02-2013, 15:43
if %CurrentOS%==Windows7 (
"c:\Program Files (x86)\Microsoft Office\Options14\MSOO.exe"
) Else d:\BSPOST\Install\LibreOffice.exe

seriych
08-02-2013, 09:03
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

gora
08-02-2013, 13:40
не запускает файл, только в каталог переводит »
1 Проверьте наличие и правильность написания пути\имени Вашего файла "E:\BSPOST\Install\LibreOffice.exe", может его и нет по этому пути?
2 Проверьте в процессах, появляется ли там процесс LibreOffice.exe

Fortress1
08-02-2013, 13:44
Gora гуру
Подскажи пожалуйста как в этот батник добавить
start /wait
и добавить автоопределение буквы флешки и автоопределение папки программ файлс (т.к. в 32 разрядных системах нет папки х86)




© OSzone.net 2001-2012