Qual è la riga di comando per scoprire se il sistema operativo esegue una versione a 32 bit o 64 bit di Windows?
Qual è la riga di comando per scoprire se il sistema operativo esegue una versione a 32 bit o 64 bit di Windows?
Risposte:
Puoi ottenerlo tramite WMI:
wmic OS get OSArchitecture
Esempio sul mio sistema:
C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
Riga di comando:
systeminfo | findstr /I type:
esempio di output:
Tipo di sistema: PC basato su X86
X86 indica un sistema a 32 bit in questo esempio.
(il /I
parametro indica la ricerca senza distinzione tra maiuscole e minuscole )
systeminfo | findstr /I typ:
come l'intera voce èSystemtyp: x64-based PC
systeminfo | findstr /C:"System Type"
recupera anche le stesse informazioni, ma immagino che il testo più lungo sia meno preferito.
Non posso allegare la risposta a un altro post, quindi qui. Il piping del risultato di systeminfo
- sta impiegando abbastanza tempo e scrive sulla console, quindi non è la soluzione migliore per i file di comando (script batch - comunque ti piace chiamarli B-)).
Anche con il findstr
- non lo trova su altre lingue di Windows. Su una lingua dell'Europa centrale win7 os restituisce anche ... "Basato su X86" ... sul risultato ma qualcosa di diverso sul "tipo" stava cercando. Non sono sicuro che possa variare su altre varianti linguistiche del sistema operativo.
Probabilmente il metodo "wmic" è il più affidabile - chiede direttamente il sistema operativo.
Un'altra possibile soluzione rapida può essere quella di esaminare una variabile (almeno lavorando su win7 presso di me).
echo %PROCESSOR_ARCHITECTURE%
Ok - è abbastanza lungo da ricordare ma è possibile set | findstr ARCH
ricordare un.
Certo, alcuni possono modificare una variabile di sistema in modo che non sia affidabile wmic
. Ma può essere usato rapidamente.
Spero di poter aiutare qualcuno.
Esistono numerosi modi per verificare l'architettura del processore in Windows:
Il modo più veloce, più semplice e più compatibile per controllare l'architettura del processore in almeno Windows 2000 e versioni successive è esaminare la PROCESSOR_ARCHITECTURE
variabile di ambiente :
echo %PROCESSOR_ARCHITECTURE%
Tuttavia, ciò può dare risultati diversi, a seconda del modo in cui viene aperto il prompt dei comandi. Per evitare di ottenere "risultati imprevisti" dovuti a WoW64 , è possibile leggerlo direttamente dal registro (Microsoft ha effettuato non meno di due errori di battitura nella chiave ):
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
Microsoft suggerisce inoltre di leggere l'archivio informazioni hardware dal registro:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier
Puoi anche verificare l'esistenza della versione x86 della Program Files
directory (o della variabile d'ambiente che la punta) poiché esisterebbe solo su un sistema a 64 bit. A differenza della PROCESSOR_ARCHITECTURE
variabile, ciò non dipende dal modo in cui viene eseguito il prompt dei comandi poiché la directory esiste (o meno) indipendentemente da come viene aperto il prompt:
::via env-var
if not defined ProgramFiles(x86) echo 32-bit
::via file-system
if not exist "%systemdrive%\Program Files (x86)" echo 32-bit
Questi metodi possono essere combinati in un singolo file batch (ad esempio, cpuinfo.bat
) e forniscono un modo semplice e veloce per controllare il sistema da un prompt dei comandi di Windows NT standard senza dover ricorrere all'esecuzione di altri programmi o framework.
Il file batch di seguito è stato testato su sistemi a 32 bit e Intel a 64 bit (eseguire il test su AMD64), fornendo risultati corretti in <1 secondo:
@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.
Non sono riuscito a trovare la OSArchitecture
proprietà (secondo la risposta di phoebus), quindi suggerirei invece di utilizzare la SystemType
proprietà in ComputerSystem
.
Esegue il comando wmic computersystem get systemtype
da un prompt dei comandi
C:\Windows\system32>wmic computersystem get systemtype
SystemType x64-based PC
se ti riferisci al sistema operativo Windows, puoi usare vbscript con 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
Vai su Start »Esegui e quindi digita cmd
. Ora sarai nel prompt dei comandi. Lì puoi digitare systeminfo
e quindi premere invio. Bastano pochi secondi per ottenere tutte le informazioni di sistema. Puoi trovare anche i dati del processore.
Processor(s): 1 Processor(s) Installed.
[01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
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
more
.