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" | 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