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 ARCH
possí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 Files
diretório (ou a variável de ambiente que aponta para ele), pois ela existiria apenas em um sistema de 64 bits. Diferente da PROCESSOR_ARCHITECTURE
variá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 OSArchitecture
propriedade (conforme resposta de phoebus), então sugiro usar a SystemType
propriedade ComputerSystem
.
A execução do comando wmic computersystem get systemtype
em 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 Query
no 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 systeminfo
e 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
.