Você pode obter isso via WMI:
wmic OS get OSArchitecture
Exemplo no meu sistema:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
Qual é a linha de comando para descobrir se o sistema operacional está executando uma versão de 32 bits ou 64 bits do Windows?
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:
exemplo de saída:
System type: X86-based PC
O X86 indica um sistema de 32 bits neste exemplo.
( /I
parâmetro indica pesquisa sem distinção entre maiúsculas e minúsculas )
Eu não posso anexar a resposta a outro post, então aqui.
Piping o resultado de systeminfo
- está demorando muito tempo e escreve no console, então não é a melhor solução para os arquivos de comando (scripts em lote - de qualquer forma, você gosta de chamá-los de B-).
Mesmo com o findstr
- ele não encontra isso em outra versão de idioma do Windows.
Em uma linguagem européia central win7 os também retorna ... "baseado em X86" ... no resultado, mas algo diferente do que o "tipo" estava procurando. Não tenho certeza se pode 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 pode ser examinar uma variável (pelo menos trabalhando no win7 em mim).
echo %PROCESSOR_ARCHITECTURE%
Ok - é bem longo lembrar, mas é possível lembrar um set | findstr ARCH
.
Claro - alguns podem modificar uma variável do sistema de modo que não seja confiável do que 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 acima é examinar a variável de ambiente PROCESSOR_ARCHITECTURE
:
echo %PROCESSOR_ARCHITECTURE%
No entanto, isso pode fornecer resultados diferentes, dependendo da maneira como o prompt de comando é aberto. Para evitar "resultados inesperados" devido ao WoW64 , você pode lê-lo diretamente do registro (a Microsoft fez não menos do 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 do registro:
reg query "HKLM\Hardware\Description\System\CentralProcessor
Program Files
" /v Identifier
Você também pode verificar a existência da versão x86 do diretório PROCESSOR_ARCHITECTURE
(ou da variável de ambiente que aponta para ele), uma vez que só existiria em um sistema de 64 bits. Ao contrário da variável ::via env-var
, 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:
if not defined ProgramFiles(x86) echo 32-bit
a ::via file-system
if not exist "%systemdrive%\Program Files (x86)" echo 32-bit
a cpuinfo.bat
Esses métodos podem ser combinados em um único arquivo em lote (por exemplo, %code% ) e fornecem uma maneira rápida e rápida de verificar o sistema a partir de um prompt de comando padrão do Windows NT sem precisar executar outros programas ou frameworks.
O arquivo em lote abaixo foi testado em sistemas Intel de 32 bits e 64 bits (teste no AMD64), fornecendo resultados corretos em < 1 segundo:
@echooffechoPROCESSOR_ARCHITECTUREvar: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@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%pre%" | 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.
" | 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 propriedade OSArchitecture
(como resposta do phoebus), portanto sugiro usar a propriedade SystemType
em 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
se você está se referindo ao sistema operacional Windows, você pode 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
Você pode encontrar essas informações usando "Informações do sistema"
Start-> Run -> winmsd.exe
Em "Resumo do sistema" / tipo de sistema, você pode encontrar a versão do sistema operacional
X64 -> 64 Bit
X86 -> 32 Bit
Resposta do JohnT na GUI;)
Vá para Iniciar »Executar e digite cmd
. Agora você estará no prompt de comando. Lá você pode digitar systeminfo
e depois pressionar enter. Leva 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>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
Código simples que usei:
:arch
set p | findstr /i AMD64 > nul
if not errorlevel 1 goto no64
goto eof
:no64
code to execute
:eof