2010-01-15 05:28:57 +0000 2010-01-15 05:28:57 +0000
26
26

Come posso determinare se la versione corrente di Windows è a 32 bit o a 64 bit dalla riga di comando?

Qual è la linea di comando per scoprire se il sistema operativo sta eseguendo una versione a 32 bit o a 64 bit di Windows?

Risposte (9)

34
34
34
2010-01-15 05:38:37 +0000

Potete ottenere questo tramite WMI:

wmic OS get OSArchitecture

Esempio sul mio sistema:

C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
13
13
13
2011-10-20 15:43:09 +0000

Non posso allegare la risposta a un altro post quindi qui. Piping il risultato di systeminfo - sta prendendo una quantità abbastanza buona nel tempo e scrive alla console così non è la migliore soluzione per i file di comando (script batch - in qualsiasi modo vi piace chiamarli B-) ).

Anche con lo findstr - non lo trova su altre versioni linguistiche di Windows. Su un os win7 di lingua europea centrale restituisce anche … “X86-based”… sul risultato ma qualcosa di diverso da quello che il “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 al sistema operativo.

Altra possibile soluzione rapida può essere quella di esaminare una variabile (almeno funziona su win7 da me).

echo %PROCESSOR_ARCHITECTURE%

Ok - è abbastanza lungo da ricordare ma è possibile che un set | findstr ARCH possa essere ricordato.

Certo - alcuni possono modificare una variabile di sistema quindi non così affidabile di wmic. Ma può essere usato rapidamente.

Spero di poter aiutare qualcuno.

12
12
12
2012-06-24 15:23:24 +0000

Ci sono numerosi modi per controllare l'architettura del processore sotto Windows:

  • Il modo più veloce, facile e compatibile per controllare l'architettura del processore in almeno Windows 2000 e superiori è quello di esaminare la variabile d'ambiente PROCESSOR_ARCHITECTURE:

  • Tuttavia, questo può dare risultati diversi, a seconda del modo in cui il prompt dei comandi viene aperto. Per evitare di ottenere “risultati inaspettati” a causa di WoW64 , si può leggere direttamente dal registro (Microsoft ha fatto non meno di due errori di battitura nella chiave ):

  • Microsoft suggerisce anche di leggere il negozio di informazioni hardware dal registro:

  • Si può anche controllare l'esistenza della versione x86 della directory Program Files (o la variabile d'ambiente che punta ad essa) poiché esisterebbe solo su un sistema a 64 bit. A differenza della variabile PROCESSOR_ARCHITECTURE, questa non dipende dal modo in cui il prompt dei comandi viene eseguito, poiché la directory esiste (o meno) indipendentemente da come il prompt viene aperto:

Questi metodi possono essere combinati in un singolo file batch (ad esempio, cpuinfo.bat) e fornisce un modo piacevole e veloce per controllare il sistema da un prompt dei comandi standard di Windows NT senza dover ricorrere all'esecuzione di altri programmi o framework.

Il seguente file batch è stato testato su sistemi a 32-bit e Intel 64-bit (si prega di provare su AMD64), dando 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![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&

6
6
6
2012-06-24 14:16:19 +0000

Non sono riuscito a trovare la proprietà OSArchitecture (come da risposta di phoebus) quindi suggerirei di usare invece la proprietà SystemType in ComputerSystem.

Eseguendo il comando wmic computersystem get systemtype da un prompt dei comandi si ottiene

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC
4
4
4
2010-01-15 05:42:49 +0000

Linea di comando regolare: wmic OS get OSArchitecture (IIRC)

PowerShell: (gwmi win32_computersystem).SystemType

1
1
1
2010-01-15 06:35:11 +0000

Puoi trovare queste informazioni usando “System Information”

Start-\> Esegui -> winmsd.exe

Sotto “System Summary”/ System Type puoi trovare la versione del sistema operativo

X64 -> 64 Bit X86 -> 32 Bit

La risposta di JohnT in GUI ;)

1
1
1
2010-01-15 05:38:45 +0000

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
1
1
1
2012-03-28 07:21:13 +0000

Vai su Start “ Esegui e poi digita cmd. Ora sarete nel prompt dei comandi. Lì puoi digitare systeminfo e poi premere invio. Ci vogliono alcuni secondi per ottenere tutte le informazioni sul sistema. Puoi trovare anche i dati del processore.

Processor(s): 1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
  • x86 Family significa che il tuo processore è a 32 bit.
  • x64 Family significa che il tuo processore è a 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
0
0
0
2013-06-25 16:19:58 +0000

Ho usato un codice semplice:

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