Qual é a melhor e mais rápida maneira de detectar se você está executando uma versão de 32 ou 64 bits do Windows Server na linha de comando?
(Cygwin está instalado)
Qual é a melhor e mais rápida maneira de detectar se você está executando uma versão de 32 ou 64 bits do Windows Server na linha de comando?
(Cygwin está instalado)
Uma maneira um pouco mais rápida seria verificar a existência do diretório% ProgramFiles (x86)%. Se existir, você estará executando 64 bits, se não existir, estará executando 32 bits.
Uma linha rápida:
if exist "%ProgramFiles(x86)%" echo 64-bit
Isso será exibido 64-bit
se o diretório existir. Isso falharia, no entanto, se não existisse como variável, mas existisse como um diretório (como% ProgramFiles (x86)%).
Você também pode usar a ferramenta de localização para ter uma maneira mais precisa de determinar o número de bits.
set | find "ProgramFiles(x86)"
ou usando o systeminfo
comando anteriormente
systeminfo | find /I "System type"
(incluído /I
para trabalhar em XP / 2003/2008 / etc)
systeminfo | find "System type"
Capitólio T não retorna nada.E se:
Isso retornará x86 em sistemas de 32 bits e AMD64 (ou IA64 ) em sistemas de 64 bits.
fonte
Program Files (x86)
diretório como outra pessoa postou. Você também pode verificar a existência da%PROGRAMFILES(X86)%
variável de ambiente (se ela não existir, estará em uma máquina x86).Ele listará um pouco, cerca de 10 campos abaixo, um chamado Tipo de Sistema. Isso informará se é x86 ou x64
fonte
Depende da localidade e é lento .
Observe que é x86 em 32 bits
cmd.exe
.Maneira correta:
fonte
PROCESSOR_ARCHITEW6432
Outra maneira de verificar com uma consulta WMI:
PowerShell:
CMD:
Extraído daqui: http://www.sysadmit.com/2015/10/windows-como-saber-si-es-de-32-o-64-bits.html
fonte
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 daPROCESSOR_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 a partir de um prompt de comando padrão do Windows NT sem precisar recorrer à execução de outros programas ou estruturas.Isso foi testado em sistemas de 32 bits e Intel de 64 bits (teste no AMD64), fornecendo resultados corretos em <1 segundo:
fonte
SOLUÇÃO GENÉRICA
Eu realmente tive que me aprofundar nisso e dar uma olhada real no WMI.
A melhor opção, na minha opinião, é simplesmente usar essa string do PowerShell
Isso funciona mesmo com o Windows 2003 e XP antigo
A resposta será uma das
PC baseado em x64
Ou, se estiver revertendo para algumas ferramentas antigas de cmd
fonte
Embora esta não é a resposta ideal, e
systeminfo.exe
deve ser o seu método preferido de determinar o tipo de sistema, ou seja, 32 bits ou 64 bits, esta solução vai um pouco mais rápido se você não quiser esperar parasysteminfo.exe
terminar o seu trabalho.O comando:
Com as alterações corretas na consulta do registro e na cadeia de pesquisa, você também pode verificar as versões do sistema operacional já no Windows 95.
systeminfo.exe
é mais exato e a maneira correta de consultar,reg.exe query
é mais rápida e mais compatível com versões anteriores.fonte
reg query "HKLM\[..as before..]\Version" /v BuildLabEx
Melhor SOLUÇÃO:
Método 1:
(Validação em duas etapas com
PROCESSOR_ARCHITECTURE
ePROCESSOR_ARCHITEW6432
)Método 2:
fonte: /superuser//a/293143/249349
fonte
Usando a interface WMI, no prompt de comando. Abra o prompt de comando como administrador e digite
wmic OS get OSArchitecture
e pressioneEnterfonte