Wie kann ich über die Befehlszeile feststellen, ob die aktuelle Windows-Version 32-Bit oder 64-Bit ist? [Duplikat]

26

Diese Frage hat hier bereits eine Antwort:

Wie lautet die Befehlszeile, um herauszufinden, ob auf dem Betriebssystem eine 32-Bit-Version oder eine 64-Bit-Version von Windows ausgeführt wird?

Durchbruch
quelle
In welcher Sprache?!
Alix Axel
@AlixAxel, nun, sie sagten Kommandozeile , also vermutlich, wenn überhaupt, Batch.
Synetech

Antworten:

33

Sie können dies über WMI erhalten:

wmic OS get OSArchitecture

Beispiel auf meinem System:

C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
ZoogieZork
quelle
Ich mag diese Antwort (muss mir eine WMI-Konsole zeigen :)), aber ich muss sie "systeminfo" für Tastatureingaben geben. ;)
ƬᴇcƬᴇιʜ007
XP?
Synetech
18

Befehlszeile:

systeminfo | findstr /I type:

Beispielausgabe:

Systemtyp: X86-basierter PC

X86 zeigt in diesem Beispiel ein 32-Bit-System an.

( /I Parameter gibt an, dass bei der Suche die Groß- / Kleinschreibung nicht berücksichtigt wird. )

Dono
quelle
Ich gab Ihnen einen Punkt für Tastenanschläge, und dann haben Sie es länger gemacht. hehe :)
ƬᴇcƬᴇιʜ007
Es ist nicht meine Antwort: P
John T
2
Aber ist "X86-basierter PC" dasselbe wie OSArchitecture 32-Bit? Sie können 32-Bit-Win XP auf einem x64-Prozessor ausführen.
Michael Caron
Seien Sie vorsichtig, wenn Ihre Betriebssystemsprache Deutsch ist (oder eine andere als Englisch)! Ich muss mich ändern, systeminfo | findstr /I typ:da der gesamte EintragSystemtyp: x64-based PC
CeOnSql
systeminfo | findstr /C:"System Type"ruft auch die gleichen Informationen ab, aber ich denke, längerer Text ist weniger bevorzugt.
Abhijeet
13

Ich kann also hier keine Antwort auf einen anderen Beitrag anhängen. Das Piping des Ergebnisses von systeminfo- nimmt ziemlich viel Zeit in Anspruch und schreibt auf die Konsole, ist also nicht die beste Lösung für Befehlsdateien (Batch-Skripte - wie auch immer Sie sie B- nennen möchten).

Auch mit dem findstr- findet man dies auf anderen Windows-Sprachversionen nicht. Auf einer mitteleuropäischen Sprache win7 os gibt es auch ... "X86-based" ... über das Ergebnis aus, aber etwas anderes, als der "Typ" suchte. Ich bin nicht sicher, ob es bei anderen Sprachvarianten des Betriebssystems zu Abweichungen kommen kann.

Wahrscheinlich ist die "wmic" -Methode die zuverlässigste - sie fragt das Betriebssystem direkt.

Eine andere mögliche schnelle Lösung kann darin bestehen, eine Variable zu untersuchen (zumindest auf win7 bei mir).

echo %PROCESSOR_ARCHITECTURE%

Ok - es ist ziemlich lang, sich zu erinnern, aber es ist möglich, dass set | findstr ARCHman sich daran erinnert.

Klar - manche können eine Systemvariable so nicht so zuverlässig modifizieren wie wmic. Kann aber schnell verwendet werden.

Ich hoffe ich konnte jemandem helfen.

RudyD
quelle
Ich war mir nicht sicher, ob der Befehl echo auf meiner XP-Box funktionieren würde, da ich diese Umgebungsvariable noch nie gesehen habe (vielleicht, weil ich noch nie danach gesucht habe), aber es funktioniert. +1 für eine einfache Lösung.
music2myear
11

Es gibt zahlreiche Möglichkeiten, die Prozessorarchitektur unter Windows zu überprüfen:

  • Die schnellste, einfachste und kompatibelste Möglichkeit, die Prozessorarchitektur in mindestens Windows 2000 und höher zu überprüfen, besteht darin, die PROCESSOR_ARCHITECTURE Umgebungsvariable zu untersuchen :

    echo %PROCESSOR_ARCHITECTURE%

  • Dies kann jedoch zu unterschiedlichen Ergebnissen führen, je nachdem, wie die Eingabeaufforderung geöffnet wird. Um zu vermeiden, dass aufgrund von WoW64 „unerwartete Ergebnisse“ erzielt werden , können Sie diese direkt aus der Registrierung lesen (Microsoft hat nicht weniger als zwei Tippfehler im Schlüssel gemacht ):

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

  • Microsoft empfiehlt außerdem, den Hardware-Informationsspeicher aus der Registrierung zu lesen:

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

  • Sie können auch prüfen, ob die x86-Version des Program FilesVerzeichnisses (oder der darauf verweisenden Umgebungsvariablen ) vorhanden ist, da sie nur auf einem 64-Bit-System vorhanden wäre. Im Gegensatz zur PROCESSOR_ARCHITECTUREVariablen hängt dies nicht davon ab, wie die Eingabeaufforderung ausgeführt wird, da das Verzeichnis vorhanden ist (oder nicht), unabhängig davon, wie die Eingabeaufforderung geöffnet wird:

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

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

Diese Methoden können in einer einzigen Batch-Datei kombiniert werden (z. B. cpuinfo.bat) und bieten eine schöne, blitzschnelle Möglichkeit, das System über eine Windows NT-Standard-Eingabeaufforderung zu überprüfen, ohne dass andere Programme oder Frameworks ausgeführt werden müssen.

Die folgende Batch-Datei wurde auf 32-Bit- und Intel 64-Bit-Systemen getestet (bitte auf AMD64 testen) und ergab in <1 Sekunde korrekte Ergebnisse:

Testergebnisse

@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.
Synetech
quelle
5

Ich konnte die OSArchitectureImmobilie nicht finden (laut der Antwort von phoebus), daher würde ich vorschlagen, die SystemTypeImmobilie ComputerSystemstattdessen in zu verwenden.

Ausführen des Befehls wmic computersystem get systemtypean einer Eingabeaufforderung gibt

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC
Spirituosen
quelle
4

Regelmäßige Befehlszeile: wmic OS get OSArchitecture (IIRC)

Power Shell: (gwmi win32_computersystem).SystemType

phoebus
quelle
1
Ich bekomme Invalid Queryin XP.
Synetech
1

Wenn Sie sich auf Windows beziehen, können Sie vbscript mit WMI verwenden

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
user31894
quelle
1

Sie finden diese Informationen unter "Systeminformationen".

Start-> Ausführen -> winmsd.exe

Unter "System Summary" / System Type finden Sie die OS-Version

X64 -> 64 Bit
X86 -> 32 Bit

JohnTs Antwort in GUI;)

ukanth
quelle
1

Gehen Sie zu Start »Ausführen und geben Sie dann Folgendes ein cmd. Jetzt werden Sie in der Eingabeaufforderung sein. Dort können Sie systeminfoeingeben und dann die Eingabetaste drücken. Es dauert einige Sekunden, um alle Systeminformationen abzurufen. Sie können die Prozessordaten auch finden.

 Processor(s):              1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
  • x86-Familie bedeutet, dass Ihr Prozessor 32-Bit ist.
  • x64-Familie bedeutet, dass Ihr Prozessor 64-Bit ist.

C: \ Dokumente und Einstellungen \ 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
Rami Reddy Mullangi
quelle
2
Dauert in der Tat ein paar Sekunden! Das erneute Ausführen hilft nicht, da die Informationen nicht zwischengespeichert werden. Durch die Windows-Updates wird der Teil über die Architektur schnell vom Bildschirm gescrollt. Wenn Sie also nicht über einen ausreichend großen Puffer verfügen, müssen Sie ihn weiterleiten more.
Synetech
0

Einfacher Code, den ich verwendet habe:

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