Como posso determinar se a versão actual do Windows é 32-bit ou 64-bit a partir da linha de comando?
Qual é a linha de comando para descobrir se o SO está a correr uma versão 32-bit ou 64-bit do Windows?
Qual é a linha de comando para descobrir se o SO está a correr uma versão 32-bit ou 64-bit do Windows?
Pode obter isto através do WMI:
wmic OS get OSArchitecture
Exemplo no meu sistema:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
Não posso anexar resposta a outro posto, por isso aqui. Piping o resultado de systeminfo
- está a demorar bastante tempo e escreve para a consola, por isso não é a melhor solução para ficheiros de comando (scripts de lote - de qualquer forma Gosta de lhes chamar B-) ).
Mesmo com o findstr
- não o encontra na versão de outras línguas do windows. Numa língua central europeia, ganha7 pois também retorna … “X86 based”… sobre o resultado mas algo mais sobre o “tipo” que então o “tipo” procurava. Não tenho a certeza que possa variar em outras variantes linguísticas do os.
Provavelmente o método “wmic” é o mais fiável - pergunta directamente ao os.
Outra solução rápida possível pode ser examinar uma variável (pelo menos trabalhando em win7 em mim).
echo %PROCESSOR_ARCHITECTURE%
Ok - é bastante longo de lembrar mas é possível que um set | findstr ARCH
possa ser lembrado.
Claro - alguns podem modificar uma variável do sistema de modo a não serem tão fiáveis como wmic
. Mas pode ser usado rapidamente.
espero poder ajudar alguém.
Há inúmeras formas de verificar a arquitectura do processador sob Windows:
PROCESSOR_ARCHITECTURE
variável de ambiente : & - Contudo, isto pode dar resultados diferentes, dependendo da forma como o comando é aberto. Para evitar obter “resultados inesperados” devido a WoW64 , pode lê-lo directamente do registo (a Microsoft fez nada menos que dois erros de digitação na chave ):
& - A Microsoft sugere também a leitura do armazém de informações de hardware do registo:
Program Files
(ou a variável de ambiente que aponta para ela) uma vez que só existiria num sistema de 64 bits. Ao contrário da variável PROCESSOR_ARCHITECTURE
, isto não depende da forma como o prompt de comando é executado, uma vez que o directório existe (ou não) independentemente da forma como o prompt é aberto: Estes métodos podem ser combinados num único ficheiro de lote (por exemplo, cpuinfo.bat
) e proporciona uma forma agradável e rápida de verificar o sistema a partir de um comando padrão do Windows NT sem necessidade de recorrer à execução de outros programas ou frameworks.
O ficheiro de lote abaixo foi testado em sistemas de 32-bit e Intel 64-bit (por favor teste no AMD64), dando resultados correctos 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![Test results](https://i.stack.imgur.com/4mmyH.png)" | 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.
0x1&
Não consegui encontrar a propriedade OSArchitecture
(conforme a resposta da phoebus) por isso sugeriria a utilização da propriedade SystemType
em ComputerSystem
em vez disso.
Executando o comando wmic computersystem get systemtype
a partir de um prompt de comando dá
C:\Windows\system32>wmic computersystem get systemtype
SystemType x64-based PC
se se referir ao SO windows, pode usar vbscript com 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á a Start “ Run e depois digite cmd
. Agora estará no prompt de comando. Aí pode digitar systeminfo
e depois carregar em enter. Demora alguns segundos a obter toda a informação do seu sistema. 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>systeminfo
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