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

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

Ответить
Настройки темы
CMD/BAT - [решено] Как проверить разрядность операционной системы?

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


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

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


Как проверить разрядность операционной системы?

У виндоуз 7 есть 2 версии: 64-х разрядная и 32-х разрядная.

Для 64-х разрядной нужно, чтобы выполнялись дополнительные программы. Как это сделать в коммандом файле?

Отправлено: 22:50, 08-04-2010

 
7ka 7ka вне форума

Аватара для 7ka

Старожил


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

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


Изображения
Тип файла: png Безымянный.png
(10.1 Kb, 96 просмотров)

gora, прошу прощения, я немного не так выразился, требуется что-то на подобие такой структуры:

Отправлено: 23:29, 29-03-2013 | #51



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

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


Аватара для gora

Ушёл из жизни


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

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


Так?
Код: Выделить весь код
@Echo Off
Set Tip=UNKNOWN
Reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | Find "Windows 7" >nul
If "%ERRORLEVEL%"=="0" Set Tip=Win7
Reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | Find "Windows 8" >nul
If "%ERRORLEVEL%"=="0" Set Tip=Win8

Set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86

Echo %%xOS%% -	%xOS%
Echo %%Tip%% -	%Tip%
If %Tip%==UNKNOWN Exit
If %Tip%==Win7 (
	If %xOS%==x64 (
		Echo setup_7_64.exe
	) Else (
		Echo setup_7_32.exe
	)
)
If %Tip%==Win8 (
	If %xOS%==x64 (
		Echo setup_8_64.exe
	) Else (
		Echo setup_8_32.exe
	)
)
Pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:56, 29-03-2013 | #52

7ka 7ka вне форума

Аватара для 7ka

Старожил


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

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


gora, да, это то что нужно. Премного благодарен.

У меня еще один вопрос к вам, понимаю что не в этой теме, да простят меня боги))
Возможно ли как-то заставить команду robocopy отображать только процент копирования в окне пакетного файла? Заранее спасибо!

Последний раз редактировалось 7ka, 30-03-2013 в 08:40.


Отправлено: 08:31, 30-03-2013 | #53


Аватара для Survover

Ветеран


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

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


Сделал так все работает ! А как правильно прописать файл конфигурации в Модифицированном SFX модуле 7-Zip ?




@echo off

Set xOS=x86
If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64

IF %xOS%==x86 ( "setup_x86.exe" /S) else ( "setup_x64.exe" /S)
pause
exit

-------
Не бойся сказать спасибо ;)


Отправлено: 13:05, 04-02-2015 | #54


Аватара для gora

Ушёл из жизни


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

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


Survover, для таких вопросов есть ветка: .: Файлы конфигурации 7z SFX. Помощь и советы :.

Код: Выделить весь код
RunProgram="%%P:hidcon:cmd /c setup_%%P.exe &Pause"
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:12, 04-02-2015 | #55


Аватара для Survover

Ветеран


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

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


Спс

-------
Не бойся сказать спасибо ;)


Отправлено: 13:15, 04-02-2015 | #56


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


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

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


Ребят подскажите, а как закрыть окно cmd?
что только не пробовал, и пауза выход и просто выход и эхо.

Запуская программу с сетевой папки - Mem_Reduct, нужно самому закрывать cmd или же нажимать выход в программе и тогда командная строка закрывается

Отправлено: 11:15, 02-03-2018 | #57


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


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

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


С определением разрядности ОС всё оказалось как-то запутанно и неопределённо. Например, в моей Win 10 x64 переменная "PROCESSOR_ARCHITECTURE" имеет значение "AMD64", а "PROCESSOR_ARCHITEW6432" не определена. Может, вместо второй использовать переменную "ProgramW6432"? В общем, вот, что я нашёл по этому вопросу (комментарий одного из пользователей одного ресурса):
Скрытый текст
Код: Выделить весь код
@echo off
cls

rem Источник: http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx

rem При наличии переменной PROCESSOR_ARCHITEW6432 система 64-х битная, но работает в режиме 32-х битной эмуляции.

rem PROCESSOR_ARCHITECTURE — переменнная, содержащая информацию об архитектуре процессора (возможные варианты: x86, IA64, AMD64).

rem 1) PROCESSOR_ARCHITECTURE==x86 и PROCESSOR_ARCHITEW6432 не определена — 32-х разрядная система;

rem 2) PROCESSOR_ARCHITECTURE==AMD64 и PROCESSOR_ARCHITEW6432 не определена — 64-х разрядная система на базе x64, программа запущена в родном режиме (64-х битном);

rem 3) PROCESSOR_ARCHITECTURE==IA64 и PROCESSOR_ARCHITEW6432 не определена — 64-х разрядная система на базе Itanium, программа запущена в родном режиме (64-х битном);

rem 4) PROCESSOR_ARCHITECTURE==x86 и PROCESSOR_ARCHITEW6432==AMD64 — 64-х разрядная система на базе x64, программа запущена в режиме x86;

rem 5) PROCESSOR_ARCHITECTURE==x86 и PROCESSOR_ARCHITEW6432==IA64 — 64-х разрядная система на базе Itanium, программа запущена в режиме эмуляции x86.

rem echo run test windows x64 or x32

if defined PROCESSOR_ARCHITEW6432 (goto LABEL_X64)
if %PROCESSOR_ARCHITECTURE%==IA64 (goto LABEL_X64)
if %PROCESSOR_ARCHITECTURE%==AMD64 (goto LABEL_X64)
if %PROCESSOR_ARCHITECTURE%==x86 (goto LABEL_X86)
goto LABEL_NON

:LABEL_X64
echo OS type: x64
goto LABEL_END

:LABEL_X86
echo OS type: x86
goto LABEL_END

:LABEL_NON
echo OS type: undefined
goto LABEL_END

:LABEL_END
pause

Отправлено: 06:06, 03-02-2021 | #58


Ветеран


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

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


по обеим переменным и определяется:
Cmd:
Код: Выделить весь код
rem Определение разрядности системы
set arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
	if not defined PROCESSOR_ARCHITEW6432 (
		set arch=x86
	)
)
echo %arch%
pause
Powershell:
Код: Выделить весь код
function Get-OsArch {
# Определение архитектуры системы
[string]$arch = "amd64"
	if ($env:PROCESSOR_ARCHITECTURE -eq "x86") {
		if (!$env:PROCESSOR_ARCHITEW6432) {$arch = "x86"}
	}
	return $arch
}
Get-OsArch
Для версии ОС, если надо:
Powershell:
Код: Выделить весь код
function Get-OsVers {
# Определение версии системы
[string[]]$VerArray = ((Get-WmiObject -class Win32_OperatingSystem).Version).split(".")
	$osver = $VerArray[0] + "." + $VerArray[1]
	return $osver
}
Get-OsVers

Последний раз редактировалось alpap, 03-02-2021 в 14:08.

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

Отправлено: 13:36, 03-02-2021 | #59


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Andrey_Vladimirovich:
С определением разрядности ОС всё оказалось как-то запутанно и неопределённо. »
Код: Выделить весь код
>nul 2>&1 set ProgramFiles(x86)&&set xOS=x64||set xOS=x86
и проверяйте состояние переменной %xOS%

-------
scio me nihil scire. Ѫ

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

Отправлено: 14:40, 03-02-2021 | #60



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как убрать меню выбора операционной системы? trimo Microsoft Windows 2000/XP 84 26-01-2010 21:57
Вопрос - Как можно проверить был взлом системы или просто зашли под другим пользователем? ИС_ Защита компьютерных систем 0 24-09-2009 16:52
как узнать разрядность системы DIMON171 Хочу все знать 20 28-06-2008 19:57
Как убрать меню выбора операционной системы Guest Microsoft Windows 95/98/Me (архив) 1 10-09-2004 14:11
Разрядность операционной системы ankerok Хочу все знать 7 09-01-2003 16:45




 
Переход