Bagaimana saya bisa menentukan apakah versi Windows saat ini adalah 32-bit atau 64-bit dari baris perintah? [duplikat]


26

Apa baris perintah untuk mengetahui apakah OS menjalankan versi 32-bit atau 64-bit Windows?


Dalam bahasa apa ?!
Alix Axel

@AlixAxel, yah mereka mengatakan command-line , jadi mungkin, jika ada, Batch.
Synetech

Jawaban:


33

Anda bisa mendapatkan ini melalui WMI:

wmic OS get OSArchitecture

Contoh di sistem saya:

C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit

Saya suka jawaban ini (harus belajar saya beberapa konsol WMI :)), tapi saya harus memberikannya ke "systeminfo" untuk penekanan tombol. ;)
Ƭᴇcʜιᴇ007

XP?
Synetech

18

Garis komando:

systeminfo | findstr /I type:

contoh output:

Jenis sistem: PC berbasis X86

X86 menunjukkan sistem 32-bit dalam contoh ini.

( /I parameter menunjukkan pencarian case-insensitive )


Saya memberi Anda poin untuk penekanan tombol, dan kemudian Anda membuatnya lebih lama. hehe :)
Ƭᴇcʜιᴇ007

Ini bukan jawaban saya: P
John T

2
Tetapi apakah "PC berbasis X86" sama dengan OSArchitecture 32-bit? Anda dapat menjalankan Win XP 32-bit pada prosesor x64.
Michael Caron

hati-hati jika bahasa OS Anda adalah bahasa Jerman (atau mungkin selain englisch)! Saya harus berubah systeminfo | findstr /I typ:karena keseluruhan entri adalahSystemtyp: x64-based PC
CeOnSql

systeminfo | findstr /C:"System Type"juga mengambil informasi yang sama, tetapi saya kira teks yang lebih panjang sehingga kurang disukai.
Abhijeet

13

Saya tidak bisa melampirkan jawaban ke posting lain jadi di sini. Piping hasil systeminfo- mengambil jumlah yang cukup baik dalam waktu dan menulis ke konsol jadi bukan solusi terbaik untuk file perintah (skrip batch - bagaimanapun Anda suka menyebutnya B-)).

Bahkan dengan findstr- itu tidak menemukan ini di versi bahasa windows lainnya. Pada win7 os bahasa Eropa tengah itu juga mengembalikan ... "Berbasis X86" ... pada hasil tetapi sesuatu yang lain kemudian "jenis" cari. Saya tidak yakin itu dapat bervariasi pada varian bahasa os lainnya.

Mungkin metode "wmic" adalah yang paling dapat diandalkan - ia meminta os secara langsung.

Solusi cepat lainnya yang mungkin dapat dilakukan adalah dengan memeriksa variabel (setidaknya bekerja pada win7 pada saya).

echo %PROCESSOR_ARCHITECTURE%

Ok - itu cukup panjang untuk diingat tetapi mungkin set | findstr ARCHbisa diingat.

Tentu - beberapa dapat memodifikasi variabel sistem sehingga tidak dapat diandalkan daripada wmic. Tapi bisa digunakan dengan cepat.

Saya harap saya bisa membantu seseorang.


Saya tidak yakin perintah echo akan berfungsi pada kotak XP saya karena saya belum pernah melihat variabel lingkungan ini sebelumnya (mungkin karena saya tidak pernah mencarinya), tetapi ternyata benar. +1 untuk solusi sederhana.
music2myear

11

Ada banyak cara untuk memeriksa arsitektur prosesor di Windows:

  • Cara tercepat, termudah, dan paling kompatibel untuk memeriksa arsitektur prosesor di setidaknya Windows 2000 dan yang lebih tinggi adalah dengan memeriksa PROCESSOR_ARCHITECTURE variabel lingkungan :

    echo %PROCESSOR_ARCHITECTURE%

  • Namun, ini dapat memberikan hasil yang berbeda, tergantung pada cara di mana command-prompt dibuka. Untuk menghindari "hasil yang tidak terduga" karena WoW64 , Anda dapat membacanya langsung dari registri (Microsoft membuat tidak kurang dari dua kesalahan ketik di kunci ):

    reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE

  • Microsoft juga menyarankan untuk membaca penyimpanan informasi perangkat keras dari registri:

    reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier

  • Anda juga dapat memeriksa keberadaan versi Program Filesdirektori x86 (atau variabel lingkungan yang menunjukkannya) karena hanya akan ada pada sistem 64-bit. Berbeda dengan PROCESSOR_ARCHITECTUREvariabel, ini tidak tergantung pada cara command prompt dijalankan karena direktori ada (atau tidak) terlepas dari bagaimana prompt dibuka:

    • ::via env-var
      if not defined ProgramFiles(x86) echo 32-bit

    • ::via file-system
      if not exist "%systemdrive%\Program Files (x86)" echo 32-bit

Metode-metode ini dapat digabungkan dalam satu file batch (misalnya, cpuinfo.bat) dan menyediakan cara cepat dan bagus untuk memeriksa sistem dari command-prompt standar Windows NT tanpa perlu menggunakan program atau kerangka kerja lain.

File batch di bawah ini diuji pada sistem 32-bit dan Intel 64-bit (silakan uji pada AMD64), memberikan hasil yang benar dalam <1 detik:

Hasil tes

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

5

Saya tidak dapat menemukan OSArchitectureproperti (sesuai jawaban phoebus) jadi saya sarankan menggunakan SystemTypeproperti itu ComputerSystemsebagai gantinya.

Menjalankan perintah wmic computersystem get systemtypedari command prompt memberi

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC

4

Baris perintah reguler: wmic OS get OSArchitecture (IIRC)

PowerShell: (gwmi win32_computersystem).SystemType


1
Saya dapatkan Invalid Querydi XP.
Synetech

1

jika Anda mengacu pada OS windows, Anda dapat menggunakan vbscript dengan 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

Anda dapat menemukan Informasi itu menggunakan "Informasi Sistem"

Mulai-> Jalankan -> winmsd.exe

Di bawah "Ringkasan Sistem" / Jenis Sistem Anda dapat menemukan versi OS

X64 -> 64 Bit
X86 -> 32 Bit

Jawaban JohnT dalam GUI;)


1

Pergi ke Mulai »Jalankan lalu ketik cmd. Sekarang Anda akan berada di command prompt. Di sana Anda dapat mengetik systeminfodan kemudian tekan enter. Butuh beberapa detik untuk mendapatkan semua informasi sistem Anda. Anda dapat menemukan data prosesor juga.

 Processor(s):              1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
  • x86 Family artinya, prosesor Anda adalah 32-bit.
  • x64 Family artinya, prosesor Anda 64-bit.

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

2
Memang butuh beberapa detik! Dan menjalankannya lagi tidak akan membantu karena itu tidak menyimpan informasi. Juga, pembaruan Windows menyebabkan bagian tentang arsitektur dengan cepat gulir ke luar layar, jadi kecuali Anda memiliki buffer yang cukup besar, Anda perlu memasukkannya ke dalam pipa more.
Synetech

0

Kode sederhana yang saya gunakan:

:arch
set p | findstr /i AMD64 > nul
if not errorlevel 1 goto no64
goto eof
:no64
code to execute
:eof
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.