जवाबों:
% ProgramFiles (x86)% निर्देशिका के अस्तित्व की जांच करने के लिए थोड़ा तेज़ तरीका होगा। यदि यह मौजूद है तो आप 64-बिट चला रहे हैं, यदि यह मौजूद नहीं है तो आप 32-बिट चला रहे हैं।
त्वरित एक-लाइनर:
if exist "%ProgramFiles(x86)%" echo 64-bit
64-bitयदि निर्देशिका मौजूद है, तो यह आउटपुट करेगा । हालांकि, यह विफल होगा, अगर यह एक चर के रूप में मौजूद नहीं था, लेकिन यह एक निर्देशिका के रूप में मौजूद था (% प्रोग्रामफाइल्स (x86)% के रूप में)।
बिटनेस निर्धारित करने के लिए आप अधिक सटीक तरीका खोजने के लिए खोज उपकरण का उपयोग कर सकते हैं।
set | find "ProgramFiles(x86)"
या systeminfoपहले से कमांड का उपयोग कर रहा है
systeminfo | find /I "System type"
( /IXP / 2003/2008 / etc पर काम करने के लिए शामिल )
कैसा रहेगा:
echo %PROCESSOR_ARCHITECTURE%
यह 32-बिट सिस्टम पर x86 और 64-बिट सिस्टम पर AMD64 (या IA64 ) लौटाएगा ।
Program Files (x86)किसी और के रूप में निर्देशिका के अस्तित्व के लिए जाँच । आप पर्यावरण चर के अस्तित्व की जांच भी कर सकते हैं%PROGRAMFILES(X86)% (यदि यह मौजूद नहीं है, तो आप x86 मशीन पर हैं)।
systeminfo | find /I "System type"
यह स्थानीय निर्भर है, और धीमा है ।
echo %PROCESSOR_ARCHITECTURE%
ध्यान दें, कि यह 32-बिट में x86 है cmd.exe।
सही तरीका:
set Arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
if not defined PROCESSOR_ARCHITEW6432 set Arch=x86
)
PROCESSOR_ARCHITEW6432
WMI क्वेरी के साथ जांच करने का अन्य तरीका:
शक्ति कोशिका:
(gwmi win32_computersystem).SystemType
अध्यक्ष एवं प्रबंध निदेशक:
wmic OS get OSArchitecture
यहां से निकाला गया: http://www.sysadmit.com/2015/10/windows-como-saber-si-es-de-32-o-64-bits.html
विंडोज के तहत प्रोसेसर आर्किटेक्चर की जांच करने के कई तरीके हैं:
कम से कम विंडोज 2000 और इसके बाद के संस्करण में प्रोसेसर आर्किटेक्चर की जांच करने के लिए सबसे तेज़, सबसे आसान और सबसे संगत तरीका PROCESSOR_ARCHITECTURE पर्यावरण चर की जांच करना है :
echo %PROCESSOR_ARCHITECTURE%
हालाँकि, यह अलग-अलग परिणाम दे सकता है, जिस पर कमांड-प्रॉम्प्ट को खोलने के तरीके पर निर्भर करता है। WoW64 के कारण "अप्रत्याशित परिणाम" प्राप्त करने से बचने के लिए , आप इसे सीधे रजिस्ट्री से पढ़ सकते हैं (Microsoft ने कुंजी में दो टाइपो से कम नहीं बनाया ):
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE
Microsoft रजिस्ट्री से हार्डवेयर जानकारी संग्रह पढ़ने का भी सुझाव देता है:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" /v Identifier
आप Program Filesनिर्देशिका के x86 संस्करण (या पर्यावरण चर जो इसे इंगित करता है) के अस्तित्व की जांच कर सकते हैं क्योंकि यह केवल 64-बिट सिस्टम पर मौजूद होगा। PROCESSOR_ARCHITECTUREचर के विपरीत , यह उस तरीके पर निर्भर नहीं है जो कमांड प्रॉम्प्ट को चलाए जाने के बाद से मौजूद है (या नहीं) इस बात की परवाह किए बिना कि प्रॉम्प्ट कैसे खोला जाता है:
::via env-var
if not defined ProgramFiles(x86) echo 32-bit
::via file-system
if not exist "%systemdrive%\Program Files (x86)" echo 32-bit
इन विधियों को एक एकल बैच-फ़ाइल (जैसे cpuinfo.bat) में जोड़ा जा सकता है और अन्य कार्यक्रमों या रूपरेखाओं का सहारा लेने की आवश्यकता के बिना एक मानक विंडोज एनटी कमांड-प्रॉम्प्ट से सिस्टम की जांच करने के लिए एक अच्छा, बिजली का तेज़ तरीका प्रदान करता है।
यह 32-बिट और इंटेल 64-बिट सिस्टम पर परीक्षण किया गया था (कृपया AMD64 पर परीक्षण करें), <1 सेकंड में सही परिणाम दे रहा है:
@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.
मैं वास्तव में इस में खुदाई करने और WMI में चारों ओर एक वास्तविक रूप है।
मेरी राय में सबसे अच्छा विकल्प केवल इस PowerShell स्ट्रिंग का उपयोग करना है
(Get-WmiObject win32_ComputerSystem -ComputerName $ComputerName).SystemType
यह भी पुराने Windows 2003 और XP के साथ काम करते हैं
जवाब में से एक होगा
x64- आधारित पीसी
या अगर कुछ पुराने जमाने के cmd टूल को देखें
wmic computersystem get systemtype
हालांकि यह आदर्श उत्तर नहीं है, और systeminfo.exeसिस्टम प्रकार, यानी 32-बिट या 64-बिट को निर्धारित करने का आपका पसंदीदा तरीका होना चाहिए, यह समाधान थोड़ा तेज़ चलता है यदि आप systeminfo.exeअपना काम खत्म करने के लिए इंतजार नहीं करना चाहते हैं।
आदेश:
reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | find "BuildLabEx"
रजिस्ट्री क्वेरी और खोज स्ट्रिंग में सही परिवर्तन के साथ आप ऑपरेटिंग सिस्टम संस्करणों के लिए भी जाँच कर सकते हैं जहाँ तक विंडोज़ 95 systeminfo.exeहै। अधिक सटीक और क्वेरी करने का सही तरीका, reg.exe queryतेज़ और अधिक संगत है।
reg query "HKLM\[..as before..]\Version" /v BuildLabEx
विधि 1:
(के साथ दो कदम सत्यापन PROCESSOR_ARCHITECTUREऔर PROCESSOR_ARCHITEW6432)
set Arch=x64
if "%PROCESSOR_ARCHITECTURE%" == "x86" (
if not defined PROCESSOR_ARCHITEW6432 set Arch=x86
)
if %Arch% == "x64" (
msg * "yessss"
) else (
msg * "noooo"
)
विधि 2:
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x32" > NUL && set OS=32BIT || set OS=64BIT
if %OS%==32BIT echo "YESSS"
if %OS%==64BIT echo "NOOO"
स्रोत: /superuser//a/293143/249349
systeminfo | find "System type"कैपिटल टी रिटर्न कुछ भी नहीं होना चाहिए ।