Qual é a linha de comando para descobrir se o sistema operacional está executando uma versão de 32 bits ou 64 bits do Windows?
Qual é a linha de comando para descobrir se o sistema operacional está executando uma versão de 32 bits ou 64 bits do Windows?
Respostas:
Você pode obter isso via WMI:
wmic OS get OSArchitecture
Exemplo no meu sistema:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
Linha de comando:
systeminfo | findstr /I type:
saída de exemplo:
Tipo de sistema: PC baseado em X86
X86 indica um sistema de 32 bits neste exemplo.
( /I parâmetro indica pesquisa que não diferencia maiúsculas de minúsculas )
systeminfo | findstr /I typ:que toda a entrada éSystemtyp: x64-based PC
systeminfo | findstr /C:"System Type"também recupera a mesma informação, mas acho que textos mais longos são menos preferidos.
Não consigo anexar resposta a outro post aqui. Pipetar o resultado de systeminfo- está demorando bastante tempo e grava no console, portanto, não é a melhor solução para arquivos de comando (scripts em lote - de qualquer maneira que você queira chamá-los de B-)).
Mesmo com o findstr- ele não encontra isso na versão do Windows em outro idioma. Em um idioma da Europa Central, o win7 também retorna ... "baseado em X86" ... no resultado, mas outra coisa que o "tipo" estava procurando. Não tenho certeza de que ele possa variar em outras variantes de idioma do sistema operacional.
Provavelmente o método "wmic" é o mais confiável - ele pergunta diretamente ao sistema operacional.
Outra solução rápida possível é examinar uma variável (pelo menos trabalhando em win7 para mim).
echo %PROCESSOR_ARCHITECTURE%
Ok - é bastante longo para lembrar, mas é possível lembrar um set | findstr ARCHpossível.
Claro - alguns podem modificar uma variável de sistema para não ser tão confiável quanto isso wmic. Mas pode ser usado rapidamente.
Espero poder ajudar alguém.
Existem várias maneiras de verificar a arquitetura do processador no Windows:
A maneira mais rápida, fácil e compatível de verificar a arquitetura do processador em pelo menos o Windows 2000 e superior é examinar a PROCESSOR_ARCHITECTURE variável de ambiente :
echo %PROCESSOR_ARCHITECTURE%
No entanto, isso pode gerar resultados diferentes, dependendo da maneira como o prompt de comando é aberto. Para evitar a obtenção de "resultados inesperados" devido ao WoW64 , você pode lê-lo diretamente do registro (a Microsoft fez nada menos que dois erros de digitação na chave ):
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
A Microsoft também sugere a leitura do armazenamento de informações de hardware no registro:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier
Você também pode verificar a existência da versão x86 do Program Filesdiretório (ou a variável de ambiente que aponta para ele), pois ela existiria apenas em um sistema de 64 bits. Diferente da PROCESSOR_ARCHITECTUREvariável, isso não depende da maneira como o prompt de comando é executado, pois o diretório existe (ou não), independentemente de como o prompt é aberto:
::via env-var
if not defined ProgramFiles(x86) echo 32-bit
::via file-system
if not exist "%systemdrive%\Program Files (x86)" echo 32-bit
Esses métodos podem ser combinados em um único arquivo em lotes (por exemplo, cpuinfo.bat) e fornecem uma maneira rápida e agradável de verificar o sistema em um prompt de comando padrão do Windows NT, sem a necessidade de recorrer à execução de outros programas ou estruturas.
O arquivo em lote abaixo foi testado em sistemas de 32 bits e Intel de 64 bits (teste no AMD64), fornecendo resultados corretos em <1 segundo:

@echo off
echo PROCESSOR_ARCHITECTURE var:
echo %PROCESSOR_ARCHITECTURE% | find /i "x86" > nul
if %errorlevel%==0 (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo PROCESSOR_ARCHITECTURE reg:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE | find /i "x86" > nul
if %errorlevel%==0 (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo CentralProcessor reg:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul
if %errorlevel%==0 (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo ProgramFiles(x86) var:
if not defined ProgramFiles(x86) (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo ProgramFiles(x86) dir:
if not exist "%systemdrive%\Program Files (x86)" (
echo 32-bit
) else (
echo 64-bit
)
echo.
Não consegui encontrar a OSArchitecturepropriedade (conforme resposta de phoebus), então sugiro usar a SystemTypepropriedade ComputerSystem.
A execução do comando wmic computersystem get systemtypeem um prompt de comando fornece
C:\Windows\system32>wmic computersystem get systemtype
SystemType x64-based PC
Linha de comando regular: wmic OS get OSArchitecture (IIRC)
PowerShell: (gwmi win32_computersystem).SystemType
Invalid Queryno XP.
se você estiver se referindo ao sistema operacional Windows, poderá usar o vbscript com o WMI
strComputer = "."
Set objWMIService = GetObject("winmgmts{impersonationLevel=impersonate,authenticationLevel=Pkt}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")
For Each objProcessor In colSettings
Wscript.Echo "System Type: " & objProcessor.Architecture
Wscript.Echo "Processor: " & objProcessor.Description
Wscript.Echo "Address Width: "& objProcessor.AddressWidth
Next
Vá em Iniciar »Executar e digite cmd. Agora você estará no prompt de comando. Lá você pode digitar systeminfoe pressionar enter. Demora alguns segundos para obter todas as informações do sistema. Você também pode encontrar os dados do processador.
Processor(s): 1 Processor(s) Installed.
[01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
C: \ Documents and Settings \ mr85464> informações do sistema
OS Name: Microsoft Windows XP Professional
OS Version: 5.1.2600 Service Pack 3 Build 2600
OS Manufacturer: Microsoft Corporation
OS Configuration: Member Workstation
OS Build Type: Multiprocessor Free
Product ID: 76487-640-3658033-23932
Original Install Date: 3/16/2012, 2:03:44 PM
System Up Time: 5 Days, 21 Hours, 35 Minutes, 51 Seconds
System Manufacturer: Dell Inc.
System Model: OptiPlex 210L
System type: X86-based PC
Processor(s): 1 Processor(s) Installed.
[01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
~2992 Mhz
more.