क्या कमांड प्रॉम्प्ट और एमएस-डॉस एक ही चीज हैं?


12

मैंने अपने दोस्त के साथ तर्क दिया कि कमांड प्रॉम्प्ट MS-DOS का सिर्फ GUI संस्करण है, जो विंडोज फॉर्म के वातावरण में काम करता है। वह पूरी तरह से मुझसे असहमत है।

कौन सही है?


2
आपके शोध ने आपको अब तक क्या बताया है?
12

4
cmd.exeMS-DOS से बिलकुल अलग जानवर है।
Sathyajith भट्ट

7
MS-DOS एक ऑपरेटिंग सिस्टम है। विंडोज कमांड प्रॉम्प्ट एक इंटरफ़ेस है जो एमएस-डॉस जैसा दिखता है
डेर होकस्टाप्लर


जवाबों:


20

यह एक बार सच था, लेकिन यह अब नहीं है।

से MS-DOS # Windows कमांड लाइन इंटरफेस - विकिपीडिया :

Microsoft Windows के सभी संस्करणों में MS-DOS जैसे कमांड-लाइन इंटरफ़ेस (CLI) होता है। यह एक ही कमांड लाइन सत्र में कई DOS और विभिन्न Win32, OS / 2 1.x और Posix कमांड लाइन उपयोगिताओं को चला सकता है। उपयोगकर्ता इंटरफ़ेस, और आइकन Windows 2000 तक, मूल MS-DOS इंटरफ़ेस का अनुसरण करता है।

उपभोक्ता विंडोज (3.11 तक, Win9x, WinME) MS-DOS के शीर्ष पर चल रहे एक ग्राफिकल यूजर इंटरफेस (GUI) के रूप में चला। विंडोज 95, 98 और एमई के साथ एमएस-डॉस भाग को एकीकृत किया गया था, दोनों ऑपरेटिंग सिस्टमों को एक पूर्ण पैकेज के रूप में माना गया। कमांड लाइन ने विंडोज मॉड्यूल (winoldap.mod) के माध्यम से डॉस कमांड लाइन (आमतौर पर कमशॉट) को एक्सेस किया।

विंडोज की एक नई लाइन, (विंडोज एनटी), एक कर्नेल के माध्यम से बूट करती है जिसका एकमात्र उद्देश्य विंडोज को लोड करना है। लोडर सिस्टम में कोई भी Win32 एप्लिकेशन नहीं चला सकता है जिस तरह से OS / 2, UNIX या कंज्यूमर विंडोज कैरेक्टर मोड सेशन लॉन्च कर सकता है।

तो नहीं, NT परिवार के प्रत्येक विंडोज में (जैसे, XP, Vista, 7, 8), कमांड प्रॉम्प्ट और MS-DOS नेत्रहीन समान हैं, लेकिन काफी अलग हैं।


वास्तव में, मैं कहूंगा कि यह कभी सच नहीं था । समतुल्य cmd.exeहोता command.com, MSDOS का एक छोटा सा हिस्सा।

9

वे अलग-अलग चीजें हैं - कमांड प्रॉम्प्ट MS-DOS नहीं है - लेकिन जहां तक ​​उपयोगकर्ता का संबंध है वे एक ही चीज हो सकते हैं क्योंकि वे एक ही काम करते हैं।

तो यह आपकी बातों पर निर्भर करता है। अपने मित्र को देखने के तकनीकी बिंदु से यह सही है, लेकिन एक उपयोगकर्ता के दृष्टिकोण से आप सही हैं (जैसे कि मतभेद हैं कि एक विशेषज्ञ हाजिर होगा)।


मुझे लगता है कि आप विपरीत अधिकार का मतलब है? वह वह है जो तकनीकी रूप से सही है क्योंकि वे वस्तुतः एक ही चीज नहीं हैं, मित्र वह है जो व्यावहारिक रूप से सही है क्योंकि वे उपयोगकर्ता के लिए समान हैं।
ब्रैड

@ ब्रैड - जिस तरह से मैंने सवाल पढ़ा वह यह था कि ओपी ने कहा कि वे वही थे लेकिन उनके दोस्त ने कहा कि वे नहीं थे।
क्रिसफ

8

नहीं।

(जब तक समानता की अपनी परिभाषा अतीत विस्तार नहीं करता है » यह एक पाठ इंटरफेस है और मैं इसे से कार्यक्रमों चला सकते हैं। « )

जब आप स्टार्ट मेनू में कमांड प्रॉम्प्ट पर क्लिक करते हैं तो विंडोज कमांड प्रोसेसर उर्फ ​​क्या होता है cmd.exe। इसकी अंतर्निहित कमांड और स्क्रिप्टिंग सिंटैक्स (कई क्विर्क सहित) command.comसीपी / एम और बाद में एमएस-डॉस से प्राचीन पर आधारित हैं , लेकिन इसके अलावा वे पूरी तरह से अलग चीजें हैं। इसके अलावा, command.comएक 16-बिट प्रोग्राम है, जबकि cmd.exeएक देशी विंडोज कंसोल एप्लिकेशन है।

विंडोज 95, 98 और एमई में चीजें अलग-अलग थीं, जहां command.com एमएस-डॉस वीएम में विंडोज को हाइपरविजर के रूप में अभिनय के साथ चलाया जाएगा (हां, उनके पास उस तरह की चीज पहले से ही थी)। वहाँ आपके पास एक पूरी वर्चुअल मशीन थी जो डॉस चला रही थी। लेकिन विंडोज एनटी, 2000, एक्सपी, विस्टा और 7 पर - नहीं। DOS केवल उसी पर रहता है ntvdm.exeजिसमें NT वर्चुअल DOS मशीन है जो सिर्फ एक पतली एमुलेशन लेयर है जो कॉल को कैप्चर करती है कि CPU सीधे निष्पादित नहीं कर सकता (यही कारण है कि यह DOSBox की तुलना में तेजी से लेकिन बदतर काम करता है)।

किसी भी मामले में, यहां तक ​​कि command.comडॉस के लिए सिर्फ एक शेल था। यह ऑपरेटिंग सिस्टम नहीं था।

अंदर, मैं वास्तव में हर बार जब मैं लोगों को एमएस-डॉस के रूप में ग्रे-ऑन-ब्लैक पाठ के साथ एक खिड़की का संदर्भ देता हूं, तो देखता हूं। अधिकांश मामलों में वे वास्तव में नहीं जानते कि वे किस बात का जिक्र कर रहे हैं।


4

जो मैं समझता हूं, वह MS-DOS वह डिस्क ऑपरेटिंग सिस्टम है जिसे Microsoft ने जारी किया था। कमांड प्रॉम्प्ट एक गैर-ग्राफिकल इंटरफ़ेस है जो आपको अपने ऑपरेटिंग सिस्टम के साथ बातचीत करने की अनुमति देता है।

कमांड प्रॉम्प्ट एक कमांड लाइन दुभाषिया एप्लीकेशन है जो अधिकांश विंडोज ऑपरेटिंग सिस्टम में उपलब्ध है, जिसे आधिकारिक तौर पर विंडोज कमांड प्रोसेसर कहा जाता है लेकिन कभी-कभी कमांड शेल कहा जाता है। कमांड प्रॉम्प्ट एक विंडोज प्रोग्राम है जो MS-DOS में उपलब्ध कमांड लाइन की कई क्षमताओं का अनुकरण करता है लेकिन यह वास्तव में MS-DOS नहीं है।

कमांड प्रॉम्प्ट MS-DOS में कॉमपीस का GUI संस्करण है। cmd.exe एक देशी Windows अनुप्रयोग है जो आमतौर पर Win32 कंसोल में चलता है। इससे यह प्लेटफॉर्म पर मूल कार्यक्रमों के लिए उपलब्ध सुविधाओं का लाभ उठाने की अनुमति देता है जो अन्यथा डॉस कार्यक्रमों के लिए अनुपलब्ध हैं।

उदाहरण के लिए, चूंकि cmd.exe OS / 2 पर एक मूल पाठ-मोड अनुप्रयोग है, यह कमांड पाइपलाइनों में वास्तविक पाइपों का उपयोग कर सकता है, जिससे पाइपलाइन के दोनों किनारों को समवर्ती रूप से चलाने की अनुमति मिलती है। परिणामस्वरूप, COMMAND.COM के विपरीत, cmd.exe में मानक त्रुटि को पुनर्निर्देशित करना संभव है। (COMMAND.COM अस्थायी फ़ाइलों का उपयोग करता है, और दो पक्षों को क्रमिक रूप से चलाता है, एक के बाद एक।)

वास्तव में, cmd.exe एक विंडोज प्रोग्राम है जो डॉस-जैसे कमांड लाइन दुभाषिया के रूप में कार्य करता है। यह आम तौर पर संगत है, लेकिन एक्सटेंशन प्रदान करता है जो COMMAND.COM की कुछ सीमाओं को संबोधित करता है (ऊपर स्पष्टीकरण विकिपीडिया द्वारा संदर्भित हैं)।


2

आपका दोस्त सही है MS-DOS है / था एक ऑपरेटिंग सिस्टम डॉस के लिए यूआई एक (कहा जाता है (माइक्रोसॉफ्ट डिस्क ऑपरेटिंग सिस्टम क्या परिवर्णी शब्द के लिए खड़ा है। है) ) कमांड प्रॉम्प्ट।

विंडोज़ के पहले कुछ संस्करण डॉस के शीर्ष पर चले गए (उन्हें तकनीकी रूप से ऑपरेटिंग वातावरण बनाते हुए, हालांकि मुझे यकीन नहीं है कि कोई भी अब वह अंतर बनाता है), लेकिन बाद में ओएस, एनटी कर्नेल के साथ शुरू हुआ, नहीं - डॉस चला गया था।

हालांकि, लोगों को अभी भी कमांड प्रॉम्प्ट द्वारा प्रदान की गई कार्यक्षमता की आवश्यकता थी, और कॉमपीड के बजाय हमें कमांड। Exe (और इन दिनों cmd.exe) मिला, जो जब रन करता है तो हमें कमांड प्रॉम्प्ट देता है।

लेकिन, यह एकमात्र (न ही कहीं भी पहले के पास) कमांड प्रॉम्प्ट है जो लोगों ने उपयोग किया है। कमांड प्रॉम्प्ट को शेल भी कहा जाता है, और यूनिक्स में कई हैं, और कमांड अलग और अक्सर बहुत शक्तिशाली हैं। पावर की बात करें तो माइक्रोसॉफ्ट ने विंडोज के लिए एक नया कमांड प्रॉम्प्ट बनाया है जिसे पावरशेल कहा जाता है जो अविश्वसनीय रूप से शक्तिशाली और दिलचस्प है। अधिक के लिए विकिपीडिया देखें: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces


> DOS के लिए UI को (a) कमांड प्रॉम्प्ट कहा जाता है। इसके अलावा "कमांड-लाइन"।
Synetech

और सीएलआई या कमांड लाइन इंटरफ़ेस।
मार्क एलन

तकनीकी रूप से, सीएलआई एक प्रकार का इंटरफ़ेस है, किसी एक का विशेष उदाहरण नहीं। यह विंडोज़ को GUI (जैसे, मैंने Windows GUI का उपयोग किया है ) को कॉल करने जैसा होगा । आप इसे कह सकते हैं, और यह तकनीकी रूप से सही / सटीक है, लेकिन यह सिर्फ अजीब होगा।
Synetech

मैं बस इसे कमांड प्रॉम्प्ट कहता हूं। :)
मार्क एलेन

मैं बस इसे डॉस कहता हूं (कम से कम मैं कुछ समय के लिए इस्तेमाल किया था, मैं अनिच्छा से इसे शुद्ध डॉस कह रहा हूं )।
सिंटेक जूल

1

वे वही नहीं हैं!

जाहिरा तौर पर बहुत से लोग यह महसूस नहीं करते हैं कि डॉस प्रॉम्प्ट, और विंडोज कमांड प्रॉम्प्ट एक ही बात नहीं हैं। वे वास्तव में क्रमशः दो अलग-अलग कार्यक्रम हैं- COMMAND.COM और CMD.EXE।

अपने कमांड प्रॉम्प्ट्स को जानें

सबसे पहले मंच (डॉस बनाम विंडोज़) और दुभाषिया (command.com बनाम cmd.exe) में अंतर के कारण, वहाँ हो जाएगा स्पष्ट असमानताओं को बताया की तरह

  • डॉस फुलस्क्रीन में बिना विंडो मोड के चलता है, इसलिए mode con:cols=COL lines=ROWकंसोल को आकार देने के लिए कोई titleकमांड नहीं, और कोई कमांड नहीं
  • डॉस मल्टीटास्किंग, मल्टीसियर, रजिस्ट्री, अनुमतियाँ, लंबे फ़ाइल नाम, सिम्लिंक / हार्डलिंक, नेटवर्क, यूनिकोड, डायनेमिक डिस्क और एडवांस्ड वॉल्यूम सपोर्ट का समर्थन नहीं करता है ... इसलिए उन लोगों को प्रबंधित करने के लिए कोई टूल नहीं है।

लेकिन कम- आय और cmd.exe के बीच आंतरिक कमांड की क्षमताओं और सिंटैक्स में भी बड़े अंतर हैं , साथ ही दो वातावरणों में कुछ बाहरी उपकरण भी हैं। MS-DOS में हैं

  • कोई कार्य नहीं, कोड ब्लॉक ()और स्थानीय स्कोप जिसका अर्थ है

    • for, if... एक ही लाइन पर एक ही आदेश का पालन ​​किया जाना चाहिए
    • नहीं exit /bयाgoto :eof
    • नहीं setlocalऔरendlocal
    • gotoकेवल एक लेबल पर कूद callसकते हैं , केवल एक और बैच फ़ाइल शुरू कर सकते हैं
    • आदेशों को एक साथ समूहीकृत नहीं किया जा सकता है

      (
      command1
      command2
      ) >output.txt
      
  • कोई बच चरित्र नहीं ^। विशेष वर्णों को प्रिंट करना एक दर्द होगा, और बहुस्तरीय आदेशों को चलाने की कोई संभावना नहीं है

  • का कोई विशेष प्रारूप नहीं if
    • नहीं if cmdextversionऔरif defined
    • कोई संख्यात्मक और केस-असंवेदनशील स्ट्रिंग तुलना if [/i] string1 compare-op string2
  • कोई कमांड इतिहास और कमांड तर्क पूरा नहीं हुआ
  • चर का कोई अप्रत्यक्ष विस्तार (जैसे call set %%var%suffix%=string) और कोई विलंबित विस्तार (जैसे echo !var%suffix%!)
  • कोई उन्नत स्ट्रिंग हेरफेर नहीं
    • कोई ~xxxVचर समर्थन नहीं
    • कोई विकल्प %variable:~num1,num2%या स्ट्रिंग प्रतिस्थापन समर्थन नहीं है%variable:str=newstr%
  • कोई आंशिक चर नाम मिलान के लिए नहीं set, और
    • नहीं, set /aतो आप अंकगणित नहीं कर सकते
    • नहीं set /pजिसका अर्थ है कि उपयोगकर्ता इनपुट पढ़ना एक दर्द है
    • कोई set "var=value"सिंटैक्स नहीं
  • %*पूरे कमांड लाइन के लिए नहीं
  • नहीं for /d, for /rया for /lfor /fफ़ाइलों से कोई रीडिंग इनपुट भी मुश्किल नहीं है। forडॉस का एकमात्र रूप हैFOR %variable IN (set) DO command [command-parameters]
  • नहीं findstr, और findयूनिकोड का समर्थन नहीं करता है
  • कोई विशेष पर्यावरण चर जैसे%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
  • सीमित निर्देशिका बदलने की क्षमता
    • नहीं pushd/popd
    • नहीं cd /d। इसके अलावा नहीं cd path with spacesऔर cd "path with spaces"लंबी फ़ाइल नाम समर्थन की कमी के कारण
  • नहीं color
  • नहीं forfiles
  • नहीं assoc(क्योंकि कोई GUI नहीं है और फाइलें कमांड लाइन से मैन्युअल रूप से खोली जानी चाहिए, इसलिए कोई फ़ाइल एसोसिएशन की आवश्यकता नहीं है)

विंडोज में बहुत सारे उपयोगी बाहरी कमांड जैसे, सॉर्ट, अधिक (कुछ डॉस संस्करणों में), पसंद ... डॉस में भी गायब हैं


और यही बात एमएस 'रिच टर्नर ने कही

इसके अलावा, Cmd! = MS-DOS!

मैं भी ऊपर दिए गए लेखों की तरह एक आम गलत धारणा को इंगित करना चाहता हूं: Cmd <> MS-DOS!

असल में:

  • Microsoft ने अंतिम बार MS-DOS (Windows ME में v8.0) का "नया" संस्करण 16 सितंबर 2000 को - 16 साल पहले (इस लेखन के अनुसार) भेजा था !!
  • MS-DOS एक ऑपरेटिंग सिस्टम था (आज के मानकों के अनुसार एक अपेक्षाकृत सरल OS) जिसका प्राथमिक उपयोगकर्ता-इंटरफ़ेस एक कमांड-लाइन शेल था, जब तक कि Windows 3.x & 9.x नहीं आया और MS-DOS के आसपास / पर चलता रहा
  • MS-DOS 'कमांड-लाइन शेल की स्क्रिप्टिंग लैंग्वेज अपेक्षाकृत सुव्यवस्थित और मध्यम रूप से शक्तिशाली थी, लेकिन इसमें कई समृद्ध, और अधिक उन्नत सुविधाओं का अभाव था, जो हम आधुनिक समय में PowerShell, Bash, आदि में आनंद लेते हैं।
  • जबकि बाद में MS-DOS के संस्करण परिष्कार में बढ़ गए और 'C' में लिखे गए नए कोड के साथ कुछ पुराने असेंबली को जोड़ा / बदल दिया गया, MS-DOS का अधिकांश भाग दक्षता के लिए x86 असेंबली में लिखा गया था, और क्योंकि यह उस समय एकमात्र तरीका था कई हार्डवेयर उपकरणों और बाह्य उपकरणों तक पहुँच प्राप्त करना। इसने MS-DOS को गैर- x86 CPU के लिए गैर-पोर्टेबल बना दिया। यदि आप इतने इच्छुक हैं, तो आप वास्तव में MS-DOS v1.1 और v2.0 के लिए स्रोत कोड डाउनलोड कर सकते हैं, यह देखने के लिए कि MS-DOS के पहले के संस्करण x86 असेंबली में कितने लिखे गए थे (संकेत: बहुत अधिक सभी यह)!

https://devblogs.microsoft.com/commandline/rumors-of-cmds-death-have-been-greatly-exaggerated/


आगे की पढाई

अंत में, कार्यक्षमता-वार वे थोड़े समान हो सकते हैं, लेकिन अन्यथा बहुत अलग हैं


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