2010-01-15 05:28:57 +0000 2010-01-15 05:28:57 +0000
26
26

Hoe kan ik bepalen of de huidige versie van Windows 32-bit of 64-bit is vanaf de opdrachtregel?

Wat is de opdrachtregel om uit te zoeken of het OS een 32-bit versie of een 64-bit versie van Windows draait?

Antwoorden (9)

34
34
34
2010-01-15 05:38:37 +0000

Je kunt dit via WMI krijgen:

wmic OS get OSArchitecture

Voorbeeld op mijn systeem:

C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
13
13
13
2011-10-20 15:43:09 +0000

Ik kan geen antwoord hechten aan een andere post dus hier. Het pipen van het resultaat van systeminfo - kost een behoorlijke hoeveelheid tijd en schrijft naar de console dus is niet de beste oplossing voor command files (batch scripts - hoe je ze ook wilt noemen B-) ).

Zelfs met de findstr - vindt het dit niet op andere taal versies van windows. Op een centraal europese taal win7 os geeft het ook … “X86-based”… op het resultaat maar iets anders dan het “type” waar we naar zochten. Ik ben er niet zeker van dat het kan variëren op andere taal varianten van het os.

Waarschijnlijk is de “wmic” methode de meest betrouwbare - die vraagt het os direct.

Een andere mogelijke snelle oplossing kan zijn om een variabele te onderzoeken (werkt bij mij in ieder geval op win7).

echo %PROCESSOR_ARCHITECTURE%

Ok - het is nogal lang om te onthouden, maar mogelijk kan een set | findstr ARCH worden onthouden.

Zeker - sommigen kunnen een systeem variabele wijzigen dus niet zo betrouwbaar als wmic. Maar kan snel gebruikt worden.

Ik hoop dat ik iemand heb kunnen helpen.

12
12
12
2012-06-24 15:23:24 +0000

Er zijn verschillende manieren om de processorarchitectuur onder Windows te controleren:

  • De snelste, gemakkelijkste en meest compatibele manier om de processorarchitectuur te controleren in ten minste Windows 2000 en hoger is door de PROCESSOR_ARCHITECTURE omgevingsvariabele te onderzoeken:

  • Dit kan echter verschillende resultaten geven, afhankelijk van de manier waarop de opdrachtprompt wordt geopend. Om te voorkomen dat u “onverwachte resultaten” krijgt als gevolg van WoW64 , kunt u deze direct uit het register lezen (Microsoft maakte niet minder dan twee typefouten in de sleutel ):

  • Microsoft stelt ook voor om de hardware-informatieopslag uit het register te lezen:

  • U kunt ook controleren of de x86-versie van de map Program Files bestaat (of de omgevingsvariabele die daarnaar verwijst), aangezien deze alleen op een 64-bits systeem zou bestaan. In tegenstelling tot de PROCESSOR_ARCHITECTURE variabele is dit niet afhankelijk van de manier waarop de opdrachtprompt wordt uitgevoerd, aangezien de map bestaat (of niet) ongeacht de manier waarop de prompt wordt geopend:

Deze methoden kunnen worden gecombineerd in een enkel batch-bestand (b.v. cpuinfo.bat) en bieden een mooie, bliksemsnelle manier om het systeem te controleren vanaf een standaard Windows NT command-prompt zonder dat je je toevlucht hoeft te nemen tot het draaien van andere programma’s of frameworks.

Onderstaand batch-bestand werd getest op 32-bit en Intel 64-bit systemen (test a.u.b. op AMD64), en gaf correcte resultaten in <1 seconde:

@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&

6
6
6
2012-06-24 14:16:19 +0000

Ik kon de OSArchitecture eigenschap niet vinden (zoals in het antwoord van phoebus) dus ik zou willen voorstellen om in plaats daarvan de SystemType eigenschap in ComputerSystem te gebruiken.

Het uitvoeren van het commando wmic computersystem get systemtype vanaf een commando prompt geeft

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC
4
4
4
2010-01-15 05:42:49 +0000

Gewone opdrachtregel: wmic OS get OSArchitecture (IIRC)

PowerShell: (gwmi win32_computersystem).SystemType

1
1
1
2010-01-15 06:35:11 +0000

U kunt die informatie vinden via “Systeeminformatie”

Start-XX> Uitvoeren -> winmsd.exe

Onder “Systeemoverzicht”/ Systeemtype kunt u de OS-versie vinden

X64 -> 64 Bit X86 -> 32 Bit

JohnT’s antwoord in GUI ;)

1
1
1
2010-01-15 05:38:45 +0000

Als u verwijst naar Windows OS, kunt u vbscript gebruiken met 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
1
1
1
2012-03-28 07:21:13 +0000

Ga naar Start “ Uitvoeren en typ dan cmd. Nu kom je in command prompt. Daar kunt u systeminfo typen en vervolgens op enter drukken. Het duurt een paar seconden om al je systeeminformatie te krijgen. Je kunt ook de processorgegevens vinden.

Processor(s): 1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
  • x86 Family betekent, dat je processor 32-bit is.
  • x64 Family betekent dat je processor 64-bit is.

C:\Documenten en Instellingen\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
0
0
0
2013-06-25 16:19:58 +0000

Eenvoudige code die ik gebruikte:

:arch
set p | findstr /i AMD64 > nul
if not errorlevel 1 goto no64
goto eof
:no64
code to execute
:eof