सीएलआई में विंडोज सर्वर संस्करण 32/64-बिट का पता लगाएं


17

यह पता लगाने का सबसे अच्छा और तेज तरीका है कि क्या आप कमांड लाइन से विंडोज सर्वर का 32 या 64-बिट संस्करण चला रहे हैं?

(सिगविन स्थापित है)

जवाबों:


12

% 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 पर काम करने के लिए शामिल )


यह systeminfo | find "System type" कैपिटल टी रिटर्न कुछ भी नहीं होना चाहिए ।
नाथन डेविट

हाँ, पूरी तरह से याद किया। धन्यवाद नाथन! बेशक, आप केस को असंवेदनशील बनाने के लिए / I स्विच का भी उपयोग कर सकते हैं।
जोशुआ

सर्वर 2008, इसकी वास्तव में एक राजधानी 'टी' है। किसी भी तरह से। जवाब के लिए धन्यवाद - एकदम सही।
रोमांटिक

ठीक! मैं आगे बढ़ा और इसमें शामिल था / मैंने systeminfo पर स्विच किया ताकि यह पता चले कि यह एक राजधानी टी है या नहीं! :)
जोशुआ

22

कैसा रहेगा:

echo %PROCESSOR_ARCHITECTURE%

यह 32-बिट सिस्टम पर x86 और 64-बिट सिस्टम पर AMD64 (या IA64 ) लौटाएगा ।


2
यह कैसे आता है 0 वोट था? ऊ (+1)
अपाचे

1
यह एक बेहतर समाधान है फिर Program Files (x86)किसी और के रूप में निर्देशिका के अस्तित्व के लिए जाँच । आप पर्यावरण चर के अस्तित्व की जांच भी कर सकते हैं%PROGRAMFILES(X86)% (यदि यह मौजूद नहीं है, तो आप x86 मशीन पर हैं)।
ब्रेकथ्रू

3
> यह कैसे आता है 0 वोट था? शायद इसलिए कि यह विश्वसनीय नहीं है
सिंटेक

2
यह उत्तर प्रदान करता है !! - stackoverflow.com/questions/1738985/…
T.Todua

9
systeminfo 

यह थोड़ा बहुत सूचीबद्ध करेगा, लगभग 10 फ़ील्ड नीचे सिस्टम टाइप नामक है। यह आपको बताएगा कि क्या यह x86 या x64 है


8
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
) 

'Systeminfo' के उपयोग पर अपने विचारों पर पूरी तरह सहमत हैं। आपके सुझाव के लिए धन्यवाद, मैंने अपनी एक पटकथा में प्रयोग किया है
abstrask

सबसे अच्छा जवाब! अतिरिक्त सत्यापनकर्ता के साथPROCESSOR_ARCHITEW6432
T.Todua


5

विंडोज के तहत प्रोसेसर आर्किटेक्चर की जांच करने के कई तरीके हैं:

  • कम से कम विंडोज 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.

3

आम समाधान

मैं वास्तव में इस में खुदाई करने और WMI में चारों ओर एक वास्तविक रूप है।

मेरी राय में सबसे अच्छा विकल्प केवल इस PowerShell स्ट्रिंग का उपयोग करना है

(Get-WmiObject win32_ComputerSystem -ComputerName $ComputerName).SystemType

यह भी पुराने Windows 2003 और XP के साथ काम करते हैं

जवाब में से एक होगा

  • X86- आधारित पीसी
  • x64- आधारित पीसी

x64- आधारित पीसी

या अगर कुछ पुराने जमाने के cmd टूल को देखें

wmic computersystem get systemtype

2

हालांकि यह आदर्श उत्तर नहीं है, और systeminfo.exeसिस्टम प्रकार, यानी 32-बिट या 64-बिट को निर्धारित करने का आपका पसंदीदा तरीका होना चाहिए, यह समाधान थोड़ा तेज़ चलता है यदि आप systeminfo.exeअपना काम खत्म करने के लिए इंतजार नहीं करना चाहते हैं।

आदेश:

reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | find "BuildLabEx"

रजिस्ट्री क्वेरी और खोज स्ट्रिंग में सही परिवर्तन के साथ आप ऑपरेटिंग सिस्टम संस्करणों के लिए भी जाँच कर सकते हैं जहाँ तक विंडोज़ 95 systeminfo.exeहै। अधिक सटीक और क्वेरी करने का सही तरीका, reg.exe queryतेज़ और अधिक संगत है।


संपादन के लिए धन्यवाद टॉम, आपने उत्तर के लिए महत्वपूर्ण जानकारी को हटा दिया, और फिर वास्तव में बग का परिचय देने के लिए आगे बढ़े।
जस्टिन

1
Microsoft की छोटी गाड़ी "ढूंढें" कमांड के माध्यम से आउटपुट को पाइप करने के बजाय, आप REG.EXE / v स्विच के साथ सटीक मान खींच सकते हैं: reg query "HKLM\[..as before..]\Version" /v BuildLabEx
Ti Strga

0

बेहतर समाधान:

विधि 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


-1

कमांड प्रॉम्प्ट के तहत WMI इंटरफ़ेस का उपयोग करना। कमांड प्रॉम्प्ट को प्रशासक के रूप में खोलें, और टाइप करें wmic OS get OSArchitectureऔर दबाएंEnter

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.