Comment puis-je déterminer si la version actuelle de Windows est 32 bits ou 64 bits à partir de la ligne de commande? [dupliquer]

26

Quelle est la ligne de commande pour savoir si le système d'exploitation exécute une version 32 bits ou 64 bits de Windows?

Percée
la source
Dans quelle langue?!
Alix Axel du
@AlixAxel, eh bien, ils ont dit en ligne de commande , donc probablement, si quelque chose, Batch.
Synetech

Réponses:

33

Vous pouvez l'obtenir via WMI:

wmic OS get OSArchitecture

Exemple sur mon système:

C:\>wmic OS get OSArchitecture
OSArchitecture
32-bit
ZoogieZork
la source
J'aime cette réponse (je dois aller m'apprendre une console WMI :)), mais je dois la donner à "systeminfo" pour les frappes. ;)
Ƭᴇcʜιᴇ007
XP?
Synetech
18

Ligne de commande:

systeminfo | findstr /I type:

exemple de sortie:

Type de système: PC basé sur X86

X86 indique un système 32 bits dans cet exemple.

(le /I paramètre indique une recherche insensible à la casse )

Dono
la source
Je vous ai donné un point pour les frappes, puis vous avez allongé la durée. hehe :)
Ƭᴇcʜιᴇ007
Ce n'est pas ma réponse: P
John T
2
Mais "PC basé sur X86" est-il identique à OSArchitecture 32 bits? Vous pouvez exécuter Win XP 32 bits sur un processeur x64.
Michael Caron
soyez prudent si la langue de votre système d'exploitation est l'allemand (ou peut-être une autre langue que l'anglais)! Je dois changer systeminfo | findstr /I typ:car l'entrée entière estSystemtyp: x64-based PC
CeOnSql
systeminfo | findstr /C:"System Type"récupère également les mêmes informations, mais je suppose qu'un texte plus long est donc moins préféré.
Abhijeet
13

Je ne peux pas joindre de réponse à un autre message ici. Piping le résultat de systeminfo- prend beaucoup de temps et écrit sur la console, ce n'est donc pas la meilleure solution pour les fichiers de commandes (scripts de commandes - de toute façon vous aimez les appeler B-)).

Même avec le findstr- il ne trouve pas cela sur une autre version linguistique de Windows. Sur une langue d'Europe centrale win7 os, il renvoie également ... "basé sur X86" ... sur le résultat mais quelque chose d'autre que le "type" recherchait. Je ne suis pas sûr que cela puisse varier sur d'autres variantes linguistiques de l'os.

La méthode "wmic" est probablement la plus fiable - elle demande directement au système d'exploitation.

Une autre solution rapide possible peut être d'examiner une variable (au moins travailler sur win7 chez moi).

echo %PROCESSOR_ARCHITECTURE%

Ok - c'est assez long à retenir mais possible set | findstr ARCHon peut s'en souvenir.

Bien sûr - certains peuvent modifier une variable système donc pas aussi fiable que wmic. Mais peut être utilisé rapidement.

J'espère pouvoir aider quelqu'un.

RudyD
la source
Je n'étais pas sûr que la commande echo fonctionnerait sur ma boîte XP parce que je n'avais jamais vu cette variable d'environnement auparavant (peut-être parce que je ne l'avais jamais cherchée), mais c'est le cas. +1 pour une solution simple.
music2myear
11

Il existe de nombreuses façons de vérifier l'architecture du processeur sous Windows:

  • Le moyen le plus rapide, le plus simple et le plus compatible pour vérifier l'architecture du processeur dans au moins Windows 2000 et versions ultérieures consiste à examiner la PROCESSOR_ARCHITECTURE variable d'environnement :

    echo %PROCESSOR_ARCHITECTURE%

  • Cependant, cela peut donner des résultats différents, selon la façon dont l'invite de commande est ouverte. Pour éviter d'obtenir des «résultats inattendus» dus à WoW64 , vous pouvez le lire directement à partir du registre (Microsoft a fait pas moins de deux fautes de frappe dans la clé ):

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

  • Microsoft suggère également de lire la banque d'informations sur le matériel dans le registre:

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

  • Vous pouvez également vérifier l'existence de la version x86 du Program Filesrépertoire (ou de la variable d'environnement qui le pointe) car elle n'existerait que sur un système 64 bits. Contrairement à la PROCESSOR_ARCHITECTUREvariable, cela ne dépend pas de la façon dont l'invite de commandes est exécutée, car le répertoire existe (ou non), quelle que soit la façon dont l'invite est ouverte:

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

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

Ces méthodes peuvent être combinées dans un seul fichier de commandes (par exemple, cpuinfo.bat) et fournissent un moyen agréable et rapide de vérifier le système à partir d'une invite de commandes Windows NT standard sans avoir à recourir à l'exécution d'autres programmes ou frameworks.

Le fichier de commandes ci-dessous a été testé sur des systèmes 32 bits et Intel 64 bits (veuillez tester sur AMD64), donnant des résultats corrects en <1 seconde:

Résultats de test

@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
la source
5

Je n'ai pas pu trouver la OSArchitecturepropriété (selon la réponse de Phoebus), donc je suggère d'utiliser la SystemTypepropriété à la ComputerSystemplace.

L'exécution de la commande à wmic computersystem get systemtypepartir d'une invite de commande donne

C:\Windows\system32>wmic computersystem get systemtype  

SystemType x64-based PC
SPiRiTS
la source
4

Ligne de commande régulière: wmic OS get OSArchitecture (IIRC)

PowerShell: (gwmi win32_computersystem).SystemType

phoebus
la source
1
Je reçois Invalid Querysous XP.
Synetech
1

si vous faites référence à Windows OS, vous pouvez utiliser vbscript avec 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
user31894
la source
1

Vous pouvez trouver ces informations en utilisant "Informations système"

Démarrer-> Exécuter -> winmsd.exe

Sous "Résumé du système" / Type de système, vous pouvez trouver la version du système d'exploitation

X64 -> 64 bits
X86 -> 32 bits

Réponse de JohnT dans GUI;)

ukanth
la source
1

Allez dans Démarrer »Exécuter, puis tapez cmd. Vous serez maintenant à l'invite de commande. Là, vous pouvez taper systeminfo, puis appuyez sur Entrée. Il faut quelques secondes pour obtenir toutes les informations de votre système. Vous pouvez également trouver les données du processeur.

 Processor(s):              1 Processor(s) Installed.
                           [01]: x86 Family 15 Model 4 Stepping 10 GenuineIntel
  • La famille x86 signifie que votre processeur est 32 bits.
  • Famille x64 signifie que votre processeur est 64 bits.

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
Rami Reddy Mullangi
la source
2
Prend en effet quelques secondes! Et le relancer n'aidera pas car il ne met pas en cache les informations. De plus, les mises à jour de Windows font défiler rapidement la partie sur l'architecture hors écran, donc à moins d'avoir un tampon suffisamment grand, vous devez le diriger vers more.
Synetech
0

Code simple que j'ai utilisé:

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