70

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

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

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

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

5 ответов5

110

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

52

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

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

echo %PROCESSOR_ARCHITECTURE%

Дэвид Ванг (David Wang) из блогов MSDN расширяет этот документ HOWTO: определение процессной битности

8

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

8

Я написал простое приложение для командной строки, которое сообщит вам, является ли ваш процессор и ваша ОС 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
3

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

% SYSTEMROOT%\Program Files(x86)

или как там это называется?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .