Windows'umun bir komut kullanarak 32 bit mi yoksa 64 bit mi olduğunu nasıl belirlerim? [çift]


79

Olası çoğaltmaları:
Nasıl bir bilgisayar 64-bit işlemci veya işletim sistemi varsa anlatmak için
Windows Server sürümü Algılama 32/64 bit CLI
işletim sistemi sürümü: 32-bit veya 64-bit?

Windows sistemimin komut satırından 32 bit mi yoksa 64 bit mi olduğunu nasıl belirlerim?

Donanımın değil işletim sisteminin bitnessini bilmek istiyorum.

Bu soru kesinlikle sadece komut satırına uygulanır , GUI çözümü istemiyorum.


1
Hmm, bunu systeminfolistelememesi üzücü .
Tamara Wijsman,

@ MaQleod - Şahsen, cevabınızın her ikisine de uygun olması nedeniyle, soruların tam olarak çoğaltılamadığını, çünkü bunun çok daha özel bir senaryo olduğunu iddia ediyorum. Cevabınız fazladan bir yardımcı programa ihtiyaç duyduğu için 'sadece komut satırı'na' uyuyor mu bilmiyorum, ama ben olsaydım, bu soruyu cevap olarak gönderirdim.
Shinrai

@ MaQleod Özel olarak yalnızca komut satırı için bir çözüm istediği için kişisel olarak kopya olarak adlandırmazdım. Bağladığınız sorunun bir GUI çözümü için kabul edilmiş bir cevabı var.
Ben Richards,

1
Düzenleme + cevaplar için teşekkür ederiz. Durumuma en uygun cevabı seçtim.
Olumsuz

Bunun tam bir kopyası neyin olduğunu buldum. (Bağlantılı gönderi özellikle sadece komut satırına atıfta bulunur ve hatta kesin çözümümü sağlar.)
Shinrai

Yanıtlar:


123

Yükseltilmiş bir komut isteminden, yazın wmic os get osarchitecture. Çıktı oldukça açık, bence - ya "32-bit" ya da "64-bit" döndürür.


Bu, kullanacağım çözüme benziyor ... Şimdi bunu biliyorum.
James T Snell

2
Veya eğer bir W7 makinesindeyseniz ya da PS'yi kurduğunuz başka bir Windows işletim sistemindeyseniz, Powershell'de de aynı şeyi yapın: (gwmi win32_OperatingSystem) .OSArchitecture
EBGreen

2
Burada Windows XP'de çalışmıyor. Döndürür Hata: Geçersiz sorgu.
user606723

1
Uyarı: WMIC'i çalıştırmak için yönetici olmanız gerekir .
Atılım

@ user606723 - Test etmek için kullanışlı bir XP kurulumum yok, ancak WMI kancalarının bu kadar değiştiğini düşünmedim. OP adil olmak için bir işletim sistemi belirtmedi, ancak bunu kendim test etmek zorunda kalacağım.
Shinrai

56

Sistem bilgi konsolu programı bunu gösterecektir. "Sistem Türü:" satırını aramak isteyeceksiniz. 32 bit sistemler için "x86 tabanlı PC", 64 bit sistemler için "x64 tabanlı PC" yazacaktır.

Veya daha hızlı bir yöntem için PROCESSOR_ARCHITECTURE ortam değişkenini kontrol edebilirsiniz. 64 bit sistemler AMD64 ve 32 bit sistemler "x86" demelidir. Bunu kontrol etmek için basitçe onu tekrarlayabilirsiniz:

echo %PROCESSOR_ARCHITECTURE%

MSDN Blog'larında David Wang bu NASIL üzerinde genişliyor : Süreç Bitness Algılama


Bu, kurulu işletim sistemi tipini değil, İŞLEMCİ tipini göstermiyor mu?
Shinrai

Sanmıyorum çünkü 32-bit mod ve 64-bit mod, işlemcinin içerebileceği farklı modlar. Bir işlemci 32-bit modda olabilir ve işletim sisteminin yapabileceklerini bilmeli 64 bit moduna geçiş. Ancak, bu iyi bir nokta, test edilmesi gereken bir şey. Ağabeyimin 64-bit özellikli bir işlemcide 32 bit Win 7 kurulumu olduğunu bildiğim için ondan beni kontrol etmesini isteyeceğim.
Ben Richards,

Evet, emin değilim (dolayısıyla geçici cevap) ve ne yazık ki kendimi kontrol etmek için kullanışlı bir şeyim yok. Bunun sadece nasıl çalıştığından bağımsız olarak belirli bir işlemcinin rapor ettiği bir ip olduğunu düşündüm. Kesin olarak bilmek yardımcı olacaktır.
Shinrai

4
64 bit sistemde 32 bit işletim sistemi çalıştırıyorsanız,% PROCESSOR_ARCHITECTURE% hala "x86" olur. Çoğu durumda, 64 bit işletim sistemi 32 bit programları çalıştırabilir, ancak bu durum tam tersi şekilde çalışmaz.
bobbymcr

2
kadar yankı olarak oylama % PROCESSOR_ARCHITECTURE% , sql sunucusu komut kabuğunda bile çalışıyor. wmic os, osarchitecture'u bir zamanlar sql sunucusu komut kabuğunda
çalışmazken

8

%PROGRAMFILES(x86)%Ortam değişkeninin bildirilip bildirilmediğini kontrol edebilirsiniz . 32 bit sistemlerde, bu olacak değil (sadece tanımlanabilir %PROGRAMFILES%olacaktır). Bu ayrıca daha güvenlidir, çünkü Program Dosyaları (x86) dizininin var olup olmadığını kontrol eder, çünkü taşınabilir (veya hatta silinebilir).


Klasörü kontrol etmekten daha iyi bir çözüm, evet. (Bir geçici çözüm kullanmaktan hoşlanmıyorum, ancak kullanacaksanız bu işe yarar.)
Shinrai

Çok iyi yakala ... Klasörü kontrol eden bir grubum var, ama bu kesinlikle daha şık olurdu.
WernerCD

1
Cmd'nin 32bit veya 64bit modunda başlatılıp başlatılmadığını görmek için %PROGRAMFILES(x86)%ve %PROGRAMFILES%değişkenlerini de karşılaştırabilirsiniz . (64 bit pencerelerde hala 32 bit cmd çalıştırabilirsiniz.) Örnek: IF %PROGRAMFILES(x86)%== %PROGRAMFILES%=> 32 bit cmd (64 bit pencerede çalışıyor .....) IF %PROGRAMFILES(x86)%<> %PROGRAMFILES%=> 64 bit cmd.
Sam Hasler

8

İşlemcinizin ve işletim sisteminizin 64 bit mi yoksa 32 bit mi olduğunu söyleyen basit bir komut satırı uygulaması yazdım.

Okuma örneği:

C:\bitchecker
The CPU is 64-bit and the OS is 32-bit

İstek başına, burada AutoIt ile yazılmış CLI seçeneğini kullanarak derlenen kaynak.

If @CPUARCH = "x86" Then
    $CPUARCH = "32-bit"
Else
    $CPUARCH = "64-bit"
EndIf

If @OSARCH = "x86" Then
    $OSARCH = "32-bit"
Else
    $OSARCH = "64-bit"
EndIf

ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)

Ve eğer CPU (-c) ve OS (-o) için anahtarlar istiyorsanız, bir örnek:

Dim $CPUARCH, $OSARCH

If @CPUARCH = "x86" Then
    $CPUARCH = "32-bit"
Else
    $CPUARCH = "64-bit"
EndIf

If @OSARCH = "x86" Then
    $OSARCH = "32-bit"
Else
    $OSARCH = "64-bit"
EndIf

If $CmdLine[0] = 0 Then
    ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
Else
    Select
        Case $CmdLine[1] = "-c"
            ConsoleWrite($CPUARCH)
        Case $CmdLine[1] = "-o"
            ConsoleWrite($OSARCH)
        Case Else
            ConsoleWrite("The CPU is " & $CPUARCH & " and the OS is " & $OSARCH)
    EndSelect
EndIf

1
Dosya kaynakla gelirse iyi olurum. Küçük bir exe indirmek, mediafire gönderilen ve çalıştırmak için oldukça sinir bozucu.
artifex

1
@artifex, kaynak eklendi.
MaQleod

yanlış olabilir U_U Jocking :)
Pitto

Ne API autoit içinde dahili olarak kullanmak bilmek güzel olurdu ..
user606723 15

3

Ya sadece varlığını kontrol edersen

% SYSTEMROOT% \ Program Dosyaları (x86)

ya da ne denirse?


Süper bir çözüm değil, belki de probleminiz için hızlı ve kirli işler olabilir?
James T Snell

Beni bu çözüme ulaştırdın, +1. Kısa bir şekli olabilir dir \Program *.
Tamara Wijsman,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.