मैंने अपने दोस्त के साथ तर्क दिया कि कमांड प्रॉम्प्ट MS-DOS का सिर्फ GUI संस्करण है, जो विंडोज फॉर्म के वातावरण में काम करता है। वह पूरी तरह से मुझसे असहमत है।
कौन सही है?
cmd.exe
MS-DOS से बिलकुल अलग जानवर है।
मैंने अपने दोस्त के साथ तर्क दिया कि कमांड प्रॉम्प्ट MS-DOS का सिर्फ GUI संस्करण है, जो विंडोज फॉर्म के वातावरण में काम करता है। वह पूरी तरह से मुझसे असहमत है।
कौन सही है?
cmd.exe
MS-DOS से बिलकुल अलग जानवर है।
जवाबों:
यह एक बार सच था, लेकिन यह अब नहीं है।
से 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 नेत्रहीन समान हैं, लेकिन काफी अलग हैं।
वे अलग-अलग चीजें हैं - कमांड प्रॉम्प्ट MS-DOS नहीं है - लेकिन जहां तक उपयोगकर्ता का संबंध है वे एक ही चीज हो सकते हैं क्योंकि वे एक ही काम करते हैं।
तो यह आपकी बातों पर निर्भर करता है। अपने मित्र को देखने के तकनीकी बिंदु से यह सही है, लेकिन एक उपयोगकर्ता के दृष्टिकोण से आप सही हैं (जैसे कि मतभेद हैं कि एक विशेषज्ञ हाजिर होगा)।
(जब तक समानता की अपनी परिभाषा अतीत विस्तार नहीं करता है » यह एक पाठ इंटरफेस है और मैं इसे से कार्यक्रमों चला सकते हैं। « )
जब आप स्टार्ट मेनू में कमांड प्रॉम्प्ट पर क्लिक करते हैं तो विंडोज कमांड प्रोसेसर उर्फ क्या होता है cmd.exe
। इसकी अंतर्निहित कमांड और स्क्रिप्टिंग सिंटैक्स (कई क्विर्क सहित) command.com
सीपी / एम और बाद में एमएस-डॉस से प्राचीन पर आधारित हैं , लेकिन इसके अलावा वे पूरी तरह से अलग चीजें हैं। इसके अलावा, command.com
एक 16-बिट प्रोग्राम है, जबकि cmd.exe
एक देशी विंडोज कंसोल एप्लिकेशन है।
विंडोज 95, 98 और एमई में चीजें अलग-अलग थीं, जहां command.com
एमएस-डॉस वीएम में विंडोज को हाइपरविजर के रूप में अभिनय के साथ चलाया जाएगा (हां, उनके पास उस तरह की चीज पहले से ही थी)। वहाँ आपके पास एक पूरी वर्चुअल मशीन थी जो डॉस चला रही थी। लेकिन विंडोज एनटी, 2000, एक्सपी, विस्टा और 7 पर - नहीं। DOS केवल उसी पर रहता है ntvdm.exe
जिसमें NT वर्चुअल DOS मशीन है जो सिर्फ एक पतली एमुलेशन लेयर है जो कॉल को कैप्चर करती है कि CPU सीधे निष्पादित नहीं कर सकता (यही कारण है कि यह DOSBox की तुलना में तेजी से लेकिन बदतर काम करता है)।
किसी भी मामले में, यहां तक कि command.com
डॉस के लिए सिर्फ एक शेल था। यह ऑपरेटिंग सिस्टम नहीं था।
अंदर, मैं वास्तव में हर बार जब मैं लोगों को एमएस-डॉस के रूप में ग्रे-ऑन-ब्लैक पाठ के साथ एक खिड़की का संदर्भ देता हूं, तो देखता हूं। अधिकांश मामलों में वे वास्तव में नहीं जानते कि वे किस बात का जिक्र कर रहे हैं।
जो मैं समझता हूं, वह 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 की कुछ सीमाओं को संबोधित करता है (ऊपर स्पष्टीकरण विकिपीडिया द्वारा संदर्भित हैं)।
आपका दोस्त सही है MS-DOS है / था एक ऑपरेटिंग सिस्टम डॉस के लिए यूआई एक (कहा जाता है (माइक्रोसॉफ्ट डिस्क ऑपरेटिंग सिस्टम क्या परिवर्णी शब्द के लिए खड़ा है। है) ) कमांड प्रॉम्प्ट।
विंडोज़ के पहले कुछ संस्करण डॉस के शीर्ष पर चले गए (उन्हें तकनीकी रूप से ऑपरेटिंग वातावरण बनाते हुए, हालांकि मुझे यकीन नहीं है कि कोई भी अब वह अंतर बनाता है), लेकिन बाद में ओएस, एनटी कर्नेल के साथ शुरू हुआ, नहीं - डॉस चला गया था।
हालांकि, लोगों को अभी भी कमांड प्रॉम्प्ट द्वारा प्रदान की गई कार्यक्षमता की आवश्यकता थी, और कॉमपीड के बजाय हमें कमांड। Exe (और इन दिनों cmd.exe) मिला, जो जब रन करता है तो हमें कमांड प्रॉम्प्ट देता है।
लेकिन, यह एकमात्र (न ही कहीं भी पहले के पास) कमांड प्रॉम्प्ट है जो लोगों ने उपयोग किया है। कमांड प्रॉम्प्ट को शेल भी कहा जाता है, और यूनिक्स में कई हैं, और कमांड अलग और अक्सर बहुत शक्तिशाली हैं। पावर की बात करें तो माइक्रोसॉफ्ट ने विंडोज के लिए एक नया कमांड प्रॉम्प्ट बनाया है जिसे पावरशेल कहा जाता है जो अविश्वसनीय रूप से शक्तिशाली और दिलचस्प है। अधिक के लिए विकिपीडिया देखें: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces
जाहिरा तौर पर बहुत से लोग यह महसूस नहीं करते हैं कि डॉस प्रॉम्प्ट, और विंडोज कमांड प्रॉम्प्ट एक ही बात नहीं हैं। वे वास्तव में क्रमशः दो अलग-अलग कार्यक्रम हैं- 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 /l
। for /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/
.bat
फ़ाइलें पुरानी MS DOS .bat
फ़ाइलों से कैसे भिन्न होती हैं ?अंत में, कार्यक्षमता-वार वे थोड़े समान हो सकते हैं, लेकिन अन्यथा बहुत अलग हैं