विंडोज कमांड लाइन (cmd.exe) एक मान्य कमांड के रूप में "सीडी" की व्याख्या क्यों करती है?


1

मानक विंडोज कमांड लाइन (cmd.exe) से, कोई भी कमांड cd \ का उपयोग कर सकता है ताकि वर्तमान ड्राइव की जड़ में जा सके (cd जिसके बाद बैकस्लैश आता है, जिसमें कोई जगह नहीं है)।

PowerShell के साथ, हमारे पास cmdlets के लिए स्ट्रिंग उपनामों को परिभाषित करने की क्षमता है, लेकिन कमांड cd \ मानक cmd.exe से ठीक काम करता है और इसलिए यह PowerShell उपनाम नहीं है।

क्या यह सीडी कमांड के अधिक मानक उपयोग के लिए एक अंतर्निहित शॉर्टकट है जहां आप लक्ष्य निर्देशिका को कमांड के पैरामीटर के रूप में निर्दिष्ट करते हैं (कमांड के बीच एक स्थान के साथ और उम्मीद के अनुसार पैरामीटर)?


1
cd \ dir या anycommand \ की तरह ही काम करता है, क्योंकि टोकन का नाम '\ _' से पहले विभाजित किया जाएगा, क्योंकि यह फ़ाइल नाम में एक अमान्य चरित्र है
phuclv

संक्षिप्त जवाब के लिए @ LưuVĩnhPhúc धन्यवाद, यह बहुत मदद करता है।
लादरानस

मैं अपने जवाब में इसे कवर करता हूं, जोनास कोर्गित के पहले प्रश्न के बारे में कि "सीडी .." बिना किसी स्थान के काम क्यों करता है । मैं LoouVĩnhPhúc की टिप्पणी से पूरी तरह सहमत नहीं हूं क्योंकि एक बैकस्लैश एक उपनिर्देशिका के सापेक्ष पथ का हिस्सा हो सकता है। संक्षेप में, इस व्यवहार को इस तथ्य के साथ करना है कि "सीडी" कमांड विशेष है क्योंकि उस कमांड को एक "आंतरिक" कमांड के रूप में पहचाना जाता है जिसे कमांड लाइन दुभाषिया / शेल में बनाया गया है।
टोगम

जवाबों:


0

PowerShell के साथ, हमारे पास cmdlets के लिए स्ट्रिंग उपनामों को परिभाषित करने की क्षमता है, लेकिन कमांड cd \ मानक cmd.exe से ठीक काम करता है और इसलिए यह PowerShell उपनाम नहीं है।

सिर्फ इसलिए कि यह CMD में एक मानक रूप है इसका मतलब यह नहीं है कि यह PS में एक उपनाम नहीं है। वास्तव में, सीएमडी में लगभग "मानक कमांड" जो पीएस में भी काम करता है, एक उपनाम है। सीडी के लिए एक उपनाम है set-location

get-alias cdयह और अन्य चौंकाने वाली तरकीबें सीखने के लिए कमांड का उपयोग करें !

क्यों CD\ एक वैध आदेश है एक सवाल नहीं है SuperUser जवाब दे सकता है।

अद्यतन करें

CMD को कुछ भी करने के लिए PS लोड करने की आवश्यकता नहीं है।

आपकी टिप्पणियों को पढ़कर मुझे यह विचार आ रहा है कि पहली चीज़ जिसे आपको पहचानने की ज़रूरत है, वह यह है कि सीडी \ _ ने सीएमडी में इस तरह से व्यवहार किया है कि पीएस के साथ आने से पहले, इसलिए पीएस को भूल जाएं। इसमें पीएस मिलाया जाना भ्रम पैदा करना है। क्या आप अभी तक पीएस भूल गए हैं? ( यहां सही उत्तर "हां" है) अच्छा है।

जैसा कि Lưu V Lnh Phúc ने अपनी टिप्पणी में उल्लेख किया है, कमांड स्ट्रिंग्स को विभिन्न तरीकों का उपयोग करके और विभिन्न कारणों से बचाया जा सकता है। वे ऐसा क्यों करते हैं यह व्यक्तिगत कमांड पार्सर, मेजबान सिस्टम, विशिष्ट कमांड, लोगों या टीमों या संगठनों के लिए है जो इन सभी को विकसित करते हैं, और संभवतः अन्य कारण भी।


मैं समझता हूं कि पॉवर्सशेल एलियास तथाकथित "मानक कमांड" के लिए मौजूद है और आप वर्णित तरीके से उपनामों को सूचीबद्ध कर सकते हैं, हालांकि मैं अधिक उत्सुक था कि मानक कमांड प्रॉम्प्ट (cmd.exe) कैसे की व्याख्या करता है और कमांड को सीडी को पार्स करता है। \ "जब आपने PowerShell को आरंभ करने के लिए लोड नहीं किया है (यानी, यह cmd.exe शुरू करने का मामला नहीं है और फिर एक PS प्रांप्ट में कूदने के लिए शक्तियां टाइप कर रहा है)।
लैदरानास

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