Wie kann ich über die Befehlszeile feststellen, ob die aktuelle Version von Windows 32-Bit oder 64-Bit ist?
Wie lautet die Befehlszeile, um herauszufinden, ob auf dem Betriebssystem eine 32-Bit-Version oder eine 64-Bit-Version von Windows läuft?
Wie lautet die Befehlszeile, um herauszufinden, ob auf dem Betriebssystem eine 32-Bit-Version oder eine 64-Bit-Version von Windows läuft?
Sie können dies über WMI erhalten:
wmic OS get OSArchitecture
Beispiel auf meinem System:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
Ich kann die Antwort nicht an einen anderen Beitrag anhängen, also hier. Das Piping des Ergebnisses von systeminfo
- nimmt ziemlich viel Zeit in Anspruch und schreibt in die Konsole, ist also nicht die beste Lösung für Befehlsdateien (Batch-Skripte - wie auch immer Sie sie nennen wollen B-) ).
Auch mit dem findstr
- wird dies auf anderen Sprachversionen von Windows nicht gefunden. Auf einem mitteleuropäischen Sprach-Win7-Betriebssystem gibt es auch … “X86-based”… als Ergebnis zurück, aber etwas anderes als den “Typ”, nach dem gesucht wurde. Ich bin mir nicht sicher, ob es auf anderen Sprachvarianten des Betriebssystems variieren kann.
Wahrscheinlich ist die “wmic”-Methode die zuverlässigste - sie fragt das Betriebssystem direkt ab.
Eine andere mögliche schnelle Lösung kann sein, eine Variable zu untersuchen (funktioniert bei mir zumindest auf win7).
echo %PROCESSOR_ARCHITECTURE%
Ok - es ist ziemlich lang zu merken, aber möglicherweise kann man sich ein set | findstr ARCH
merken.
Sicher - einige können eine Systemvariable ändern, also nicht so zuverlässig wie wmic
. Kann aber schnell verwendet werden.
Ich hoffe, ich konnte jemandem weiterhelfen.
Es gibt zahlreiche Möglichkeiten, die Prozessorarchitektur unter Windows zu überprüfen:
Der schnellste, einfachste und kompatibelste Weg, die Prozessorarchitektur in mindestens Windows 2000 und höher zu überprüfen, ist die Untersuchung der PROCESSOR_ARCHITECTURE
Umgebungsvariable :
Dies kann jedoch unterschiedliche Ergebnisse liefern, je nachdem, wie die Eingabeaufforderung geöffnet wird. Um zu vermeiden, dass Sie “unerwartete Ergebnisse” aufgrund von WoW64 erhalten, können Sie es direkt aus der Registry lesen (Microsoft hat nicht weniger als zwei Tippfehler im Schlüssel gemacht):
Microsoft schlägt auch vor, den Hardware-Informationsspeicher aus der Registry zu lesen:
Sie können auch überprüfen, ob die x86-Version des Program Files
-Verzeichnisses (oder die Umgebungsvariable , die darauf verweist) vorhanden ist, da sie nur auf einem 64-Bit-System existiert. Im Gegensatz zur Variable PROCESSOR_ARCHITECTURE
ist dies nicht von der Art und Weise abhängig, wie die Eingabeaufforderung ausgeführt wird, da das Verzeichnis unabhängig davon, wie die Eingabeaufforderung geöffnet wird, existiert (oder nicht):
Diese Methoden können in einer einzigen Batch-Datei (z. B. cpuinfo.bat
) kombiniert werden und bieten eine schöne, blitzschnelle Möglichkeit, das System von einer Standard-Windows-NT-Eingabeaufforderung aus zu überprüfen, ohne auf die Ausführung anderer Programme oder Frameworks zurückgreifen zu müssen.
Die folgende Batch-Datei wurde auf 32-Bit- und Intel 64-Bit-Systemen getestet (bitte auf AMD64 testen) und liefert korrekte Ergebnisse in <1 Sekunde:
@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&
Ich konnte die Eigenschaft OSArchitecture
nicht finden (wie in der Antwort von phoebus), daher würde ich stattdessen die Verwendung der Eigenschaft SystemType
in ComputerSystem
vorschlagen.
Das Ausführen des Befehls wmic computersystem get systemtype
in einer Eingabeaufforderung ergibt
C:\Windows\system32>wmic computersystem get systemtype
SystemType x64-based PC
wenn Sie sich auf Windows OS beziehen, können Sie vbscript mit 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
``` verwenden
Gehen Sie auf Start “ Ausführen und geben Sie dann cmd
ein. Sie befinden sich nun in der Eingabeaufforderung. Dort können Sie systeminfo
eintippen und dann die Eingabetaste drücken. Es dauert ein paar Sekunden, bis Sie alle Ihre Systeminformationen erhalten. Sie können auch die Prozessordaten finden.
Processor(s): 1 Processor(s) Installed.
[01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
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