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

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?

Odpowiedzi (9)

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

Można to uzyskać poprzez WMI:

wmic OS get OSArchitecture

Przykład na moim systemie:

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

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.

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

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&

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

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
```.
4
4
4
2010-01-15 05:42:49 +0000

Zwykły wiersz poleceń: wmic OS get OSArchitecture (IIRC)

PowerShell: (gwmi win32_computersystem).SystemType

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

Możesz znaleźć te informacje używając “Informacje o systemie”

Start-> Uruchom -> winmsd.exe

W “Podsumowanie systemu”/ Typ systemu możesz znaleźć wersję systemu operacyjnego

X64 -> 64 Bit X86 -> 32 Bit

Odpowiedź JohnT'a w GUI ;)

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

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
1
1
1
2012-03-28 07:21:13 +0000

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
  • Rodzina x86 oznacza, że twój procesor jest 32-bitowy.
  • Rodzina x64 oznacza, że twój procesor jest 64-bitowy.

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
0
0
0
2013-06-25 16:19:58 +0000

Prosty kod, którego użyłem:

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