Como posso determinar se o meu Windows é de 32 bits ou 64 bits usando um comando? [duplicado]

69

Possible Duplicates:
How to tell if a computer has a 64-bit CPU or OS
Detect Windows Server version 32/64-bit in CLI
OS version: 32-bit or 64-bit?

Como posso determinar se o meu sistema Windows é de 32 bits ou 64 bits a partir da linha de comando?

Eu quero saber o bitness do sistema operacional, não o hardware.

Esta questão aplica-se estritamente apenas à linha de comandos , não pretendo soluções de interface gráfica.

    
por Negative 11.08.2011 / 19:44

5 respostas

107

Em um prompt de comando elevado, digite wmic os get osarchitecture . A saída é bem óbvia, eu acho - ela retornará "32 bits" ou "64 bits".

    
por 11.08.2011 / 19:53
50

O programa de console systeminfo mostrará isso. Você desejará procurar a linha "System Type:". Para sistemas de 32 bits, ele dirá "PC baseado em x86". Para sistemas de 64 bits, ele dirá "PC baseado em x64".

Ou, para um método mais rápido, você pode simplesmente verificar a variável de ambiente PROCESSOR_ARCHITECTURE. Os sistemas de 64 bits dirão que os sistemas AMD64 e de 32 bits devem dizer "x86". Para verificar isso, você pode simplesmente fazer um eco:

echo %PROCESSOR_ARCHITECTURE%

David Wang, do MSDN Blogs, expande esse COMO: Detectar bitness de processo

    
por 11.08.2011 / 19:57
8

Você pode verificar se a variável de ambiente %PROGRAMFILES(x86)% está declarada. Em sistemas de 32 bits, ele não será definido (somente %PROGRAMFILES% será). Isso também é mais seguro do que verificar se o diretório Program Files (x86) existe, já que ele pode ser movido (ou até excluído).

    
por 11.08.2011 / 19:54
8

Eu escrevi um aplicativo de linha de comando simples que informa se o seu processador e seu sistema operacional são de 64 bits ou 32 bits.

Exemplo de leitura:

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

Por solicitação, aqui está a fonte, compilada usando a opção CLI, escrita em 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)

E aqui está um exemplo se você quiser switches para CPU (-c) e 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
    
por 11.08.2011 / 20:21
3

E se você apenas verificar a presença de

%SYSTEMROOT%\Program Files(x86)

ou o que quer que seja chamado?

    
por 11.08.2011 / 19:51