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

Hoe bepaal ik of mijn Windows 32-bit of 64-bit is met behulp van een opdracht?

Mogelijke duplicaten: Hoe weet ik of een computer een 64-bit CPU of OS heeft > Detect Windows Server versie 32/64-bit in CLI OS versie: 32-bit of 64-bit?

Hoe bepaal ik of mijn Windows systeem 32-bit of 64-bit is van de opdrachtregel?

Ik wil de bitness van het besturingssysteem weten, niet de hardware.

Deze vraag is alleen van toepassing op ** opdrachtregel** , ik wil geen GUI-oplossingen.

Antwoorden (5)

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

Van een verhoogde opdrachtprompt, type wmic os get osarchitecture. De uitvoer is vrij duidelijk, denk ik - het zal ofwel “32-bits” of “64-bits” teruggeven.

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

Het systeminfo console programma zal dit laten zien. U zult willen zoeken naar de “System Type:” regel. Voor 32-bits systemen zal het zeggen “x86 gebaseerde PC”. Voor 64-bits systemen staat er “x64-gebaseerde PC”.

Of, voor een snellere methode, kun je gewoon de omgevingsvariabele PROCESSOR_ARCHITECTURE controleren. 64-bits systemen zullen zeggen “AMD64” en 32-bits systemen zouden “x86” moeten zeggen. Om dit te controleren kun je eenvoudigweg een echo maken:

echo %PROCESSOR_ARCHITECTURE%

David Wang over op MSDN Blogs breidt dit uit HOWTO: Detect Process Bitness

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

U kunt controleren of de %PROGRAMFILES(x86)% omgevingsvariabele is gedeclareerd. Op 32-bits systemen zal deze niet worden gedefinieerd (alleen %PROGRAMFILES% wel). Dit is ook veiliger dan gewoon controleren of de Program Files (x86) directory bestaat, aangezien deze kan worden verplaatst (of zelfs verwijderd).

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

Ik heb een eenvoudige opdrachtregelapplicatie geschreven die je vertelt of je processor en je OS 64-bit of 32-bit zijn.

Uitleesvoorbeeld:

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

Per verzoek is hier de bron, gecompileerd met de CLI-optie, geschreven in 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)

En hier is een voorbeeld als je switches wilt voor CPU (-c) en OS (-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

Wat als je gewoon controleert op de aanwezigheid van

%SYSTEMROOT% Programmabestanden(x86)

of hoe het ook heet?