खिड़कियों में CMD और कमांड प्रॉम्प्ट में क्या अंतर है?


30

अब तक, मैंने कभी नहीं सोचा था (और कभी नहीं देखा) कि cmdऔर commandदो अलग चीजें हैं। खैर, वे कर रहे हैं?

इस तस्वीर पर एक नज़र डालें:

यहां छवि विवरण दर्ज करें

वास्तव में, मैं आमतौर पर cmdरन डायलॉग से खोलता हूं जब भी मुझे कमांड-लाइन (गिट / वीआईएम के लिए) चाहिए। इसलिए, मैंने प्रदर्शन की स्थिति, फ़ॉन्ट, रंग, आदि को अनुकूलित किया। आज, मैंने, एक बदलाव के लिए, commandइसके बजाय रन में टाइप किया cmdऔर पाया कि मेरी खिड़की पर कुछ नया है। इसकी विंडो में "DOS" है।

तो, स्पष्ट रूप से cmdऔर के बीच अंतर होना चाहिए command। मैं जानना चाहता हूँ

  1. उनके बीच का अंतर।
  2. क्यों Microsoft ने उन्हें अलग किया (यूनिक्स और लिनक्स में डिफ़ॉल्ट रूप से केवल एक शेल है, बैश)।

11
मुझे लगता command.comहै कि विरासत 16 बिट संस्करण है (केवल 32 बिट इंस्टॉलेशन पर उपलब्ध है)। यह विंडोज 7 के मेरे 64 बिट संस्करण पर मौजूद नहीं है
Der Hochstapler

11
UNIX और Linux में केवल एक शेल उपलब्ध है। डिफ़ॉल्ट शेल आमतौर पर बैश होता है।
इफिथिथ 21:12

@ephithith यही मैंने कहा है ..
सूर्या

ध्यान दें कि वाक्यांश "कमांड प्रॉम्प्ट" का उपयोग तकनीकी रूप से कमांड.exe या cmd.exe को संदर्भित करने के लिए किया जा सकता है, लेकिन व्यवहार में लगभग हमेशा cmd.exe का उपयोग किया जाता है।
हैरी जॉन्सटन

यूनिक्स में कुल चार शेल हैं, ये हैं csh, ksh, bash, zsh।
देब

जवाबों:


31

टी एल; डॉ

जब आप 32-बिट कंसोल प्रोग्राम चलाते हैं, तो इसे निष्पादित किया जाता है cmd; जब आप 16-बिट कंसोल प्रोग्राम चलाते हैं, तो इसे निष्पादित किया जाता है command

विवरण

Windows XP में पुराने 16-बिट अनुप्रयोगों का समर्थन करने के लिए एक सबसिस्टम शामिल है।

पुराने 16-बिट एप्लिकेशन डॉस और विंडोज प्रोग्राम दोनों के रूप में उपलब्ध हैं। उनकी प्रकृति के अनुसार डॉस प्रोग्राम कंसोल एप्लिकेशन हैं और कमांड-प्रॉम्प्ट की तरह दिखते हैं। हालाँकि 32-बिट Windows कंसोल अनुप्रयोग बहुत समान हैं और समान दिखते हैं।

कमांड प्रोसेसर / दुभाषिया cmdके कई उद्देश्य हैं:

  • 32-बिट पाठ विंडोज कंसोल प्रोग्राम को निष्पादित करने के लिए
  • प्रदान करने और विभिन्न कमांड लाइन कार्यों को संभालने के लिए ( dir, copyआदि)
  • व्याख्या और बैच फ़ाइलों को निष्पादित (DOS संगत .batफ़ाइलें और NT संगत .cmdफ़ाइलें)

जब आप 16-बिट कंसोल प्रोग्राम चलाते हैं, तो इसे NTVDM (Windows NT वर्चुअल DOS मशीन) द्वारा निष्पादित किया जाता है। यह एक एमुलेटेड DOS सिस्टम (इसलिए वर्चुअल DOS मशीन ) प्रदान करता है जो कि डेडिकेटेड वर्चुअल मशीन सॉफ्टवेयर चलाने के समान है, सिवाय इसके कि इम्यूलेशन लेयर सरल हो। commandकमांड-दुभाषिया का एक 16-बिट संस्करण है cmd.exeजो वास्तविक डॉस से बहुत करीब है, जो वास्तव में एक विंडोज प्रोग्राम है (और इसमें विंडोज पीई हेडर है, command.comजिसके विपरीत डॉस एमजेड हेडर है)।

commandइसके cmdअलावा एक ही उद्देश्य है कि यह केवल 16-बिट कार्यक्रमों का समर्थन करता है। इसके अलावा, यह .cmdफ़ाइलों का समर्थन नहीं करता है और कम अंतर्निहित कमांड है और इसके सिंटैक्स में अधिक सीमित है ( 4DOS केcmd समान एक नया, अधिक आधुनिक, अधिक उन्नत कमांड-लाइन दुभाषिया है )।

हालाँकि, यह ग्राफिकल DOS प्रोग्राम्स (पुराने गेम्स की तरह) का समर्थन करता है, लेकिन इन्हें चलाने की सफलता वीडियो-कार्ड ड्राइवरों और प्रोग्राम की प्रकृति पर निर्भर करती है। ऐसी कई साइटें हैं जो विंडोज पर चलने के लिए डॉस गेम प्राप्त करने के लिए विभिन्न ट्रिक्स प्रदान करती हैं (हालांकि विस्टा और अप की सफलता आमतौर पर एक्सपी की तुलना में अधिक सीमित है)।

यह ध्यान दिया जाना चाहिए कि विंडोज के 64-बिट संस्करणों ने 16-बिट कार्यक्रमों का समर्थन पूरी तरह से गिरा दिया है, और इसलिए इसमें बिल्कुल भी शामिल नहीं है command, इसलिए न तो डॉस और न ही विंडोज 16-बिट प्रोग्राम चलेंगे और इसके बजाय एक (भ्रामक) त्रुटि संदेश फेंक देंगे ।


तकनीकी नोट

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


जब आप निश्चित रूप से cmd.exe से 32-बिट कंसोल प्रोग्राम चला सकते हैं, तो आपके पास नहीं है। यदि आप कंसोल-मोड निष्पादन योग्य फ़ाइल को डबल-क्लिक करते हैं, तो यह "cmd.exe" के अंदर नहीं चलता है। इसी प्रकार, कमांड। Ex वास्तव में NTVDM के समान नहीं है।
हैरी जॉनसन

1
मुझे कमांड-नाम के साथ एक वाक्य शुरू करने से नफरत है।
Synetech

> Command.exe वास्तव में NTVDM No के समान नहीं है, लेकिन यह इसका एक हिस्सा है, साथ ही कई DLL के साथ (मैंने इसे एक एक्सपी सिस्टम पर काम करने के लिए 16-बिट कंसोल ऐप प्राप्त करने की कोशिश करते समय कठिन तरीका सीखा। )।
Synetech

"उनकी प्रकृति द्वारा डॉस प्रोग्राम कंसोल एप्लिकेशन हैं " - आप यह क्यों कहेंगे? क्या गैर-कमांड लाइन गैर-टीयूआई डॉस ऐप किसी तरह से 'अप्राकृतिक' हैं? :)
करण

Why would you say this? Are non-command line non-TUI DOS apps 'unnatural' in some way? की तरह। 9x में, वे ठीक थे, लेकिन ग्राफिकल ऐप्स (जैसे, गेम) अब XP + में बिल्कुल भी ठीक से काम नहीं करते हैं, इसलिए इन दिनों विंडोज (मूल रूप से) पर चलने वाले DOS ऐप्स का अधिकांश हिस्सा वास्तव में इसके बजाय कमांड-लाइन टूल हैं पूर्ण-प्रवाह, चित्रमय एप्लिकेशन। 64-बिट मशीनों पर, 16-बिट ऐप्स मूल रूप से नहीं चलते हैं, लेकिन यहां तक ​​कि 32-बिट ऐप्स आमतौर पर कंसोल ऐप हैं, खासकर जब से फुलस्क्रीन कंसोल के लिए विस्टा ने समर्थन छोड़ दिया है
Synetech

8

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

भी ...

Cmd.exe के OS / 2 और Windows NT दोनों संस्करणों में कमशॉट के कम्बल "खराब कमांड या फाइल नेम" (विकृत कमांड के मामले में) की तुलना में अधिक विस्तृत त्रुटि संदेश हैं।

यह इस जानकारीपूर्ण विकिपीडिया लेख से है।

इसमें उल्लेख किया गया है कि पुराने कमशॉट्स कमांड को नए cmd.exe कार्यक्षमता में कैसे रोल किया गया है ... उदाहरण के लिए ...

डेल्ट्री (कमशॉट) की कार्यक्षमता को rd (cmd.exe) में / s पैरामीटर के रूप में रोल किया गया था

इसलिए, बेझिझक पढ़िए।


5

command.com अनुकूलता के लिए प्रदान किया गया डॉस शेल है।

cmd.exe एक मूल Win32 प्रोग्राम है, जिसे OS / 2 से विरासत में मिला है।

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