Как определить, является ли моя Windows 32-разрядной или 64-разрядной командой?

Возможные дубликаты:
Как узнать, имеет ли компьютер 64-разрядный процессор или ОС
Обнаружение Windows Server версии 32/64-бит в CLI
Версия ОС: 32-разрядная или 64-разрядная?

Как определить, является ли моя система Windows 32-разрядной или 64-разрядной из командной строки?

Я хочу знать битту операционной системы, а не аппаратное обеспечение.

Этот вопрос применим строго к командной строке , я не хочу никаких графических решений.

Из командной строки с повышенными wmic os get osarchitecture . Я думаю, что выход довольно очевиден – он вернет либо «32-битный», либо «64-битный».

Эта консольная программа systeminfo покажет это. Вы захотите найти строку «Тип системы:». Для 32-битных систем он скажет «ПК на базе x86». Для 64-битных систем он скажет «x64-based PC».

Или, для более быстрого метода, вы можете просто проверить переменную среды PROCESSOR_ARCHITECTURE. 64-битные системы скажут, что AMD64 и 32-битные системы должны сказать «x86». Чтобы проверить это, вы можете просто повторить это:

 echo %PROCESSOR_ARCHITECTURE% 

Дэвид Ванг в блогах MSDN расширяет этот HOWTO: обнаруживает процесс Bitness

Вы можете проверить, объявлена ​​ли переменная среды %PROGRAMFILES(x86)% . В 32-битных системах он не будет определен (будет только %PROGRAMFILES% ). Это также более безопасно, поэтому просто проверяйте, существует ли каталог Program Files (x86), поскольку он может быть перемещен (или даже удален).

Я написал простое приложение командной строки, которое расскажет вам, является ли ваш процессор и ваша ОС 64-разрядными или 32-разрядными.

Пример показания:

 C:\bitchecker The CPU is 64-bit and the OS is 32-bit 

По запросу здесь находится источник, скомпилированный с использованием опции CLI, написанный в AutoIt.

 If @CPUARCH = "x86" Then $CPUARCH = "32-bit" Else $CPUARCH = "64-bit" EndIf If @OSARCH = "x86" Then $OSARCH = "32-bit" Else $OSARCH = "64-bit" EndIf ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH) 

И вот пример, если вы хотите, чтобы переключатели для CPU (-c) и OS (-o):

 Dim $CPUARCH, $OSARCH If @CPUARCH = "x86" Then $CPUARCH = "32-bit" Else $CPUARCH = "64-bit" EndIf If @OSARCH = "x86" Then $OSARCH = "32-bit" Else $OSARCH = "64-bit" EndIf If $CmdLine[0] = 0 Then ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH) Else Select Case $CmdLine[1] = "-c" ConsoleWrite($CPUARCH) Case $CmdLine[1] = "-o" ConsoleWrite($OSARCH) Case Else ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH) EndSelect EndIf 

Что делать, если вы просто проверяете наличие

% SYSTEMROOT% \ Program Files (x86)

Или что бы это ни называлось?

  • Как переименовать набор файлов в командной строке Windows?
  • Как я могу по-прежнему видеть текст «человек» после того, как я брошу человека?
  • Какие специальные переменные доступны при написании команды оболочки для контекстного меню
  • Как открыть файл в WMP 11 по командной строке без его воспроизведения?
  • Синтаксис перенаправления пакетного сценария
  • Заменить встроенные команды с помощью пользовательских команд для CMD.exe
  • В чем разница между однотипными и двумя тире для параметров командной строки?
  • Команда TC через веб-страницу как sudo
  • Как открыть страницу в Chrome из командной строки, на новой вкладке или уже существующей вкладке?
  • Cmd имеет подстановочный знак?
  • Как открыть командную строку в Windows 7 с помощью сочетания клавиш?
  • Давайте будем гением компьютера.