¿Cómo puedo determinar si la versión actual de Windows es de 32 o 64 bits desde la línea de comandos?
¿Cuál es la línea de comandos para averiguar si el sistema operativo está ejecutando una versión de 32 bits o de 64 bits de Windows?
¿Cuál es la línea de comandos para averiguar si el sistema operativo está ejecutando una versión de 32 bits o de 64 bits de Windows?
Puede obtener esto a través de WMI:
wmic OS get OSArchitecture
Ejemplo en mi sistema:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
No puedo adjuntar la respuesta a otro puesto así que aquí. Canalizar el resultado de systeminfo
- está tomando una buena cantidad de tiempo y escribe en la consola por lo que no es la mejor solución para los archivos de comandos (secuencias de comandos por lotes - de cualquier manera te gusta llamarlos B-) ).
Incluso con el findstr
- no encuentra esto en la versión de otro idioma de las ventanas. En un idioma centroeuropeo win7 os que también devuelve … “basado en X86” … en el resultado, pero algo diferente en entonces el “tipo” estaban buscando. No estoy seguro de que pueda variar en otras variantes lingüísticas del sistema operativo.
Probablemente el método “wmic” es el más fiable - pregunta directamente al SO.
Otra posible solución rápida puede ser examinar una variable (al menos a mí me funciona en win7).
echo %PROCESSOR_ARCHITECTURE%
Ok - es bastante largo de recordar pero posible un set | findstr ARCH
puede ser recordado.
Claro - algunos pueden modificar una variable del sistema por lo que no es tan fiable que wmic
. Pero se puede utilizar rápidamente.
Espero haber podido ayudar a alguien.
Existen numerosas formas de comprobar la arquitectura del procesador en Windows:
La forma más rápida, sencilla y compatible de comprobar la arquitectura del procesador en al menos Windows 2000 y superiores es examinar la variable de entorno PROCESSOR_ARCHITECTURE
Sin embargo, esto puede dar diferentes resultados, dependiendo de la forma en que se abra el símbolo de sistema. Para evitar obtener “resultados inesperados” debido a WoW64 , puede leerlo directamente desde el registro (Microsoft cometió nada menos que dos errores tipográficos en la clave ):
Microsoft también sugiere leer el almacén de información de hardware desde el registro:
También puede comprobar la existencia de la versión x86 del directorio Program Files
(o la variable de entorno que apunta a él) ya que sólo existiría en un sistema de 64 bits. A diferencia de la variable PROCESSOR_ARCHITECTURE
, esto no depende de la forma en que se ejecute el símbolo del sistema, ya que el directorio existe (o no) independientemente de cómo se abra el símbolo del sistema:
Estos métodos pueden combinarse en un único archivo por lotes (por ejemplo, cpuinfo.bat
) y proporciona una forma agradable y rápida de comprobar el sistema desde un símbolo del sistema estándar de Windows NT sin necesidad de recurrir a la ejecución de otros programas o marcos.
El siguiente archivo por lotes fue probado en sistemas de 32 bits e Intel de 64 bits (por favor, pruébelo en AMD64), dando resultados correctos en <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&
No pude encontrar la propiedad OSArchitecture
(según la respuesta de phoebus) así que sugeriría usar la propiedad SystemType
en ComputerSystem
en su lugar.
Ejecutando el comando wmic computersystem get systemtype
desde un prompt de comandos da
C:\Windows\system32>wmic computersystem get systemtype
SystemType x64-based PC
si te refieres al sistema operativo windows, puedes usar vbscript con 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
Vaya a Inicio “ Ejecutar y escriba cmd
. Ahora estará en el símbolo del sistema. Allí puedes escribir systeminfo
y luego presionar enter. Tarda unos segundos en obtener toda la información de tu sistema. También puedes encontrar los datos del procesador.
Processor(s): 1 Processor(s) Installed.
[01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
C:\NDocumentos y configuraciones\Nmr85464>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