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

121178
Breakthrough

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

25
In welcher Sprache?! Alix Axel vor 14 Jahren 0
@AlixAxel, na ja, sie sagten * Kommandozeile *, also vermutlich Batch. Synetech vor 11 Jahren 0

10 Antworten auf die Frage

33
ZoogieZork

Sie können dies über WMI erhalten:

wmic OS get OSArchitecture 

Beispiel auf meinem System:

C:\>wmic OS get OSArchitecture OSArchitecture 32-bit 
Ich mag diese Antwort (ich muss einige WMI-Konsole :) lernen, aber ich muss sie "systeminfo" für Tastatureingaben geben. ;) Ƭᴇcʜιᴇ007 vor 14 Jahren 0
XP? Synetech vor 11 Jahren 0
18
Dono

Befehlszeile:

systeminfo | findstr /I type: 

Beispielausgabe:

Systemtyp: X86-basierter PC

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

( /I Parameter zeigt Groß- und Kleinschreibung an )

Ich habe Ihnen einen Punkt für Tastatureingaben gegeben, und dann haben Sie es länger gemacht. hehe :) Ƭᴇcʜιᴇ007 vor 14 Jahren 0
Es ist nicht meine Antwort: P John T vor 14 Jahren 0
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 vor 12 Jahren 2
Seien Sie vorsichtig, wenn Ihre Betriebssystemsprache Deutsch ist (oder vielleicht eine andere als Englisch)! Ich muss zu `systeminfo | wechseln findstr / ich schreibe: `da der gesamte Eintrag` Systemtyp: x64-based PC` ist CeOnSql vor 8 Jahren 0
`systeminfo | findstr / C: "System Type" `ruft auch die gleichen Informationen ab, aber ich denke, dass längerer Text also weniger bevorzugt wird. Abhijeet vor 7 Jahren 0
13
RudyD

Ich kann hier also keine Antwort zu einem anderen Beitrag beifügen. Das Pipe-Ergebnis von systeminfo- nimmt eine recht gute Zeit in Anspruch und schreibt in die Konsole. Daher ist es nicht die beste Lösung für Befehlsdateien (Batch-Skripts - Sie nennen sie trotzdem B-)).

Selbst mit dem findstr- findet es nicht in anderen Sprachversionen von Windows. Auf einer mitteleuropäischen Sprache win7 os gibt es auch ... "X86-based" ... auf das Ergebnis aber etwas anderes auf der Suche nach "Typ". Ich bin mir nicht sicher, dass es bei anderen Sprachvarianten des Betriebssystems variieren kann.

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

Eine andere schnelle Lösung besteht darin, eine Variable zu untersuchen (zumindest arbeite ich an win7).

echo %PROCESSOR_ARCHITECTURE% 

Ok - es ist ziemlich lange zu merken, aber man set | findstr ARCHkann sich daran erinnern.

Sicher - einige können eine Systemvariable nicht so zuverlässig ändern wmic. Kann aber schnell verwendet werden.

Ich hoffe ich konnte jemandem helfen.

Ich war mir nicht sicher, ob der Echo-Befehl auf meiner XP-Box funktionieren würde, da ich diese Umgebungsvariable noch nie gesehen habe (vielleicht, weil ich noch nie danach gesucht habe), aber das tut es. +1 für eine einfache Lösung. music2myear vor 12 Jahren 0
10
Synetech

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

  • Die schnellste, einfachste und am besten kompatible Methode zum Überprüfen der Prozessorarchitektur in mindestens Windows 2000 und höher ist die Überprüfung der PROCESSOR_ARCHITECTURE Umgebungsvariablen :

    echo %PROCESSOR_ARCHITECTURE%

  • Dies kann jedoch zu unterschiedlichen Ergebnissen führen, abhängig davon, wie die Eingabeaufforderung geöffnet wird. Um "unerwartete Ergebnisse" durch WoW64 zu vermeiden, können Sie es direkt aus der Registrierung lesen (Microsoft hat nicht weniger als zwei Rechtschreibfehler 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 Umgebungsvariablen, die darauf verweist) vorhanden ist, da diese nur auf einem 64-Bit-System vorhanden wäre. Im Gegensatz zu der PROCESSOR_ARCHITECTUREVariablen ist dies nicht davon abhängig, 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 Batchdatei (z. B. cpuinfo.bat) kombiniert werden und bieten eine einfache und blitzschnelle Möglichkeit, das System über eine standardmäßige Windows NT-Eingabeaufforderung zu überprüfen, ohne auf andere Programme oder Frameworks zurückgreifen zu müssen.

Die untenstehende Batchdatei wurde auf 32-Bit- und Intel 64-Bit-Systemen getestet (bitte testen Sie sie mit AMD64). Die Ergebnisse sind in <1 Sekunde korrekt:

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. 
5
SPiRiTS

Ich konnte die OSArchitectureEigenschaft nicht finden (wie in der Antwort des Phoebus), also würde ich vorschlagen, die SystemTypeEigenschaft ComputerSystemstattdessen zu verwenden.

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

C:\Windows\system32>wmic computersystem get systemtype   SystemType x64-based PC 
4
phoebus

Reguläre Befehlszeile: wmic OS get OSArchitecture (IIRC)

Power Shell: (gwmi win32_computersystem).SystemType

Ich bekomme in XP eine "ungültige Abfrage". Synetech vor 11 Jahren 1
1
user31894

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

strComputer = "."  Set objWMIService = GetObject("winmgmts!\\" & 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
ukanth

Sie finden diese Informationen über "Systeminformationen".

Start-> Ausführen -> winmsd.exe

Unter "Systemübersicht" / Systemtyp finden Sie die Betriebssystemversion

X64 -> 64 Bit
X86 -> 32 Bit

Antwort von JohnT in GUI;)

1
Rami Reddy Mullangi

Go to Start » Run and then type cmd. Now you will be in command prompt. There you can type systeminfo and then press enter. It takes a few seconds to get all your system information. You can find the processor data too.

 Processor(s): 1 Processor(s) Installed. [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel 
  • x86 Family means, your processor is 32-bit.
  • x64 Family means, your processor is 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 
Dauert in der Tat ein paar Sekunden! Das erneute Ausführen hilft nicht, da die Informationen nicht zwischengespeichert werden. Außerdem führen die Windows-Updates dazu, dass der Teil über die Architektur schnell vom Bildschirm verschoben wird. Wenn Sie also keinen ausreichend großen Puffer haben, müssen Sie ihn in "more" weiterleiten. Synetech vor 11 Jahren 2
0
Dion

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