2011-08-11 17:44:11 +0000 2011-08-11 17:44:11 +0000
83
83

¿Cómo determino si mi Windows es de 32 o 64 bits usando un comando?

Duplicados posibles: Cómo saber si un ordenador tiene una CPU o un SO de 64 bits Detectar la versión de Windows Server de 32/64 bits en el CLI Versión del SO: 32 o 64 bits?

¿Cómo determino si mi sistema Windows es de 32 o 64 bits desde la línea de comandos?

Quiero saber el bitness del sistema operativo, no el hardware.

Esta pregunta se aplica estrictamente a línea de comandos solamente , no quiero ninguna solución GUI.

Respuestas (5)

128
128
128
2011-08-11 17:53:25 +0000

Desde un símbolo de comando elevado, escriba wmic os get osarchitecture. La salida es bastante obvia, creo - devolverá “32-bit” o “64-bit”.

58
58
58
2011-08-11 17:57:17 +0000

El programa de la consola Systeminfo mostrará esto. Deberá buscar la línea “Tipo de sistema:”. Para sistemas de 32 bits, dirá “PC basado en x86”. Para sistemas de 64 bits, dirá “PC basado en x64”.

O, para un método más rápido, puedes simplemente comprobar la variable de entorno PROCESADOR_ARQUITECTURA. Los sistemas de 64 bits dirán AMD64 y los sistemas de 32 bits deberían decir “x86”. Para comprobar esto, simplemente puedes hacer un eco:

echo %PROCESSOR_ARCHITECTURE%

David Wang en MSDN Blogs se expande sobre esto CÓMO: Detectar el bit de proceso

8
8
8
2011-08-11 17:54:12 +0000

Puedes comprobar si la variable de entorno %PROGRAMFILES(x86)% está declarada. En los sistemas de 32 bits, no será definida (sólo lo será %PROGRAMFILES%). Esto también es más seguro que comprobar si el directorio de Archivos de Programa (x86) existe, ya que puede ser movido (o incluso eliminado).

8
8
8
2011-08-11 18:21:03 +0000

Escribí una simple aplicación de línea de comandos que te dirá si tu procesador y tu SO son de 64 o 32 bits.

Ejemplo de lectura:

C:\bitchecker
The CPU is 64-bit and the OS is 32-bit

Por solicitud, aquí está la fuente, compilada usando la opción CLI, escrita en AutoIt.

If @CPUARCH = "x86" Then
    $CPUARCH = "32-bit"
Else
    $CPUARCH = "64-bit"
EndIf

If @OSARCH = "x86" Then
    $OSARCH = "32-bit"
Else
    $OSARCH = "64-bit"
EndIf

ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)

Y aquí hay un ejemplo si quieres interruptores para la CPU (-c) y el SO (-o):

Dim $CPUARCH, $OSARCH

If @CPUARCH = "x86" Then
    $CPUARCH = "32-bit"
Else
    $CPUARCH = "64-bit"
EndIf

If @OSARCH = "x86" Then
    $OSARCH = "32-bit"
Else
    $OSARCH = "64-bit"
EndIf

If $CmdLine[0] = 0 Then
    ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
Else
    Select
        Case $CmdLine[1] = "-c"
            ConsoleWrite($CPUARCH)
        Case $CmdLine[1] = "-o"
            ConsoleWrite($OSARCH)
        Case Else
            ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
    EndSelect
EndIf
4
4
4
2011-08-11 17:51:04 +0000

¿Y si compruebas la presencia de

%SYSTEMROOT%\N- Archivos de programa(x86)

o como sea que se llame?