Jak mogę określić, czy aktualna wersja systemu Windows jest 32-bitowa czy 64-bitowa z poziomu wiersza poleceń?
Jaki jest wiersz poleceń, aby dowiedzieć się, czy system operacyjny pracuje na 32-bitowej czy 64-bitowej wersji Windows?
Jaki jest wiersz poleceń, aby dowiedzieć się, czy system operacyjny pracuje na 32-bitowej czy 64-bitowej wersji Windows?
Można to uzyskać poprzez WMI:
wmic OS get OSArchitecture
Przykład na moim systemie:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
Nie mogę załączyć odpowiedzi do innego postu więc tutaj. Piping wyniku systeminfo
- zajmuje całkiem sporo czasu i zapisuje do konsoli więc nie jest najlepszym rozwiązaniem dla plików poleceń (skryptów wsadowych - jakkolwiek lubisz je nazywać B-) ).
Nawet z findstr
- nie znajduje tego na innych wersjach językowych windows. Na środkowoeuropejskiej wersji językowej win7 również zwraca … “X86-based”… w wyniku, ale coś innego niż “typ”, którego szukaliśmy. Nie jestem pewien, czy może się to różnić na innych wersjach językowych systemu.
Prawdopodobnie metoda “wmic” jest najbardziej niezawodna - pyta bezpośrednio system.
Innym możliwym szybkim rozwiązaniem może być zbadanie zmiennej (przynajmniej działa na win7 u mnie).
echo %PROCESSOR_ARCHITECTURE%
Ok - jest to dość długie do zapamiętania, ale możliwe, że set | findstr ARCH
da się zapamiętać.
Jasne - niektóre mogą modyfikować zmienną systemową, więc nie są tak niezawodne jak wmic
. Ale mogą być szybko użyte.
Mam nadzieję, że udało mi się komuś pomóc.
Istnieje wiele sposobów na sprawdzenie architektury procesora w systemie Windows:
Najszybszym, najłatwiejszym i najbardziej kompatybilnym sposobem sprawdzenia architektury procesora w co najmniej Windows 2000 i wyżej jest zbadanie zmiennej środowiskowej PROCESSOR_ARCHITECTURE
zmienna środowiskowa :
Może to jednak dać różne wyniki, w zależności od sposobu otwarcia okna poleceń. Aby uniknąć otrzymania “nieoczekiwanych wyników” z powodu WoW64 , możesz odczytać go bezpośrednio z rejestru (Microsoft zrobił nie mniej niż dwie literówki w kluczu ):
Microsoft sugeruje również odczytanie magazynu informacji o sprzęcie z rejestru:
Możesz również sprawdzić istnienie wersji x86 katalogu Program Files
(lub zmiennej środowiskowej , która na niego wskazuje), ponieważ istniałaby ona tylko w systemie 64-bitowym. W przeciwieństwie do zmiennej PROCESSOR_ARCHITECTURE
, nie jest to zależne od sposobu uruchomienia wiersza poleceń, ponieważ katalog istnieje (lub nie) niezależnie od sposobu otwarcia wiersza poleceń:
Metody te mogą być połączone w jednym pliku wsadowym (np. cpuinfo.bat
) i zapewnia ładny, błyskawiczny sposób sprawdzania systemu ze standardowego wiersza poleceń Windows NT bez potrzeby uciekania się do uruchamiania innych programów lub frameworków.
Poniższy plik wsadowy został przetestowany na systemach 32-bitowych oraz Intel 64-bitowych (prosimy o przetestowanie na AMD64), dając poprawne wyniki w ciągu <1 sekundy:
@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&
Nie mogłem znaleźć właściwości OSArchitecture
(zgodnie z odpowiedzią phoebusa), więc sugerowałbym użycie właściwości SystemType
w ComputerSystem
zamiast tego.
Uruchomienie polecenia wmic computersystem get systemtype
z wiersza poleceń daje
C:\Windows\system32>wmic computersystem get systemtype
SystemType x64-based PC
```.
jeśli odnosisz się do systemu operacyjnego 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 znajdziesz się w wierszu poleceń. Tam możesz wpisać systeminfo
, a następnie wcisnąć enter. To zajmie kilka sekund, aby uzyskać wszystkie informacje o systemie. 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