Odpowiedzi:
Możesz to uzyskać za pośrednictwem WMI:
wmic OS get OSArchitecture
Przykład w moim systemie:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
Wiersz poleceń:
systeminfo | findstr /I type:
przykładowe dane wyjściowe:
Typ systemu: komputer oparty na X86
X86 wskazuje system 32-bitowy w tym przykładzie.
( /I
parametr wskazuje wyszukiwanie bez rozróżniania wielkości liter )
systeminfo | findstr /I typ:
ponieważ cały wpis toSystemtyp: x64-based PC
systeminfo | findstr /C:"System Type"
pobiera również te same informacje, ale wydaje mi się, że dłuższy tekst jest mniej preferowany.
Nie mogę dołączyć odpowiedzi do innego postu, więc tutaj. Pipingowanie wyniku systeminfo
- zajmuje dość dużo czasu i zapisuje na konsoli, więc nie jest najlepszym rozwiązaniem dla plików poleceń (skrypty wsadowe - jakkolwiek chcesz je nazywać B-)).
Nawet z findstr
- nie znajduje tego w innej wersji językowej systemu Windows. Na Win7 OS w języku środkowoeuropejskim zwraca również ... wynik oparty na X86 ... ale szukał czegoś innego niż „typ”. Nie jestem pewien, czy może się różnić w innych wersjach językowych systemu operacyjnego.
Prawdopodobnie metoda „wmic” jest najbardziej niezawodna - bezpośrednio pyta system operacyjny.
Innym możliwym szybkim rozwiązaniem może być zbadanie zmiennej (przynajmniej działa u mnie na Win7).
echo %PROCESSOR_ARCHITECTURE%
Ok - to dość długo pamiętać, ale możliwe do set | findstr ARCH
zapamiętania.
Pewnie - niektórzy mogą modyfikować zmienną systemową, aby nie była tak niezawodna jak wmic
. Ale można go szybko wykorzystać.
Mam nadzieję, że mógłbym komuś pomóc.
Istnieje wiele sposobów sprawdzenia architektury procesorów w systemie Windows:
Najszybszym, najłatwiejszym i najbardziej kompatybilnym sposobem sprawdzenia architektury procesorów w systemie Windows 2000 i nowszych jest sprawdzenie PROCESSOR_ARCHITECTURE
zmiennej środowiskowej :
echo %PROCESSOR_ARCHITECTURE%
Może to jednak dać różne wyniki, w zależności od sposobu otwarcia wiersza polecenia. Aby uniknąć „nieoczekiwanych wyników” z powodu WoW64 , możesz odczytać go bezpośrednio z rejestru (Microsoft napisał nie mniej niż dwie literówki w kluczu ):
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
Microsoft sugeruje również odczytanie magazynu informacji o sprzęcie z rejestru:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier
Możesz także sprawdzić, czy istnieje wersja Program Files
katalogu x86 (lub wskazująca ją zmienna środowiskowa ), ponieważ istniałaby ona tylko w systemie 64-bitowym. W przeciwieństwie do PROCESSOR_ARCHITECTURE
zmiennej, nie zależy to od sposobu uruchomienia wiersza polecenia, ponieważ katalog istnieje (lub nie), niezależnie od tego, jak wiersz jest otwierany:
::via env-var
if not defined ProgramFiles(x86) echo 32-bit
::via file-system
if not exist "%systemdrive%\Program Files (x86)" echo 32-bit
Metody te można łączyć w jeden plik wsadowy (np. cpuinfo.bat
) I zapewnia przyjemny, błyskawiczny sposób sprawdzania systemu ze standardowego wiersza polecenia systemu Windows NT bez konieczności uciekania się do uruchamiania innych programów lub ram.
Poniższy plik wsadowy został przetestowany na systemach 32-bitowych i 64-bitowych Intel (proszę przetestować na AMD64), dając prawidłowe wyniki w <1 sekundę:
@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\0" | 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.
Nie mogłem znaleźć OSArchitecture
właściwości (zgodnie z odpowiedzią phoebusa), więc sugerowałbym zamiast tego użyć SystemType
właściwości ComputerSystem
.
Uruchomienie polecenia wmic computersystem get systemtype
z wiersza polecenia daje
C:\Windows\system32>wmic computersystem get systemtype
SystemType x64-based PC
jeśli masz na myśli system operacyjny Windows, możesz użyć vbscript z 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
Przejdź do Start »Uruchom, a następnie wpisz cmd
. Teraz pojawi się wiersz polecenia. Tam możesz wpisać, systeminfo
a następnie nacisnąć Enter. Uzyskanie wszystkich informacji o systemie zajmuje kilka sekund. Możesz również znaleźć dane procesora.
Processor(s): 1 Processor(s) Installed.
[01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
C: \ Documents and Settings \ 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
more
.