जवाबों:
यह एक दिलचस्प समाधान है जो मैंने पहले कभी नहीं देखा है। मुझे समझाने का प्रयास करने दें:
echo %path%। यह सेमीकॉलन ( ;) के साथ अलग की गई एक लाइन पर सभी निर्देशिकाओं को प्रिंट करेगा%path:a=b%जो सभी aवर्णों को बदल देगाbecho. का उपयोग एक नई लाइन प्रिंट करने के लिए किया जाता है&आदेशों को अलग करने के लिए उपयोग किया जाता है, जैसे echo line1&echo line2दो लाइनें प्रिंट करेगा;कुछ नहीं के साथ प्रतिस्थापित करें, और फिर , एक नई पंक्ति प्रिंट करें ' के रूप में व्याख्या की जाए। मुझे इस पर कोई दस्तावेज नहीं मिल रहा है, इसलिए यह सिर्फ मेरी व्याख्या है। सच कहूं, तो मुझे यह भी नहीं पता था कि यह संभव है, लेकिन तुम जाओ। अद्यतन इस कदम की मेरी व्याख्या से लगता है, और wizzwizz4 द्वारा बेहतर समझाया गया है ।echo path? चर के लिए %% का उपयोग किया जाता है?
set greeting=Helloऔर फिर echo %greeting%। भ्रामक रूप से, PATHएक कमांड और एक वैरिएबल दोनों होता है, इसलिए कमांड टाइप करना path, या echo %path%एक ही परिणाम होगा।
$PATHउदाहरण के लिए उपयोग होती हैं ।
echo."कमांड को एक नई प्रिंट करने के लिए नहीं है"। यह विंडोज एनटी के लिए माइक्रोसॉफ्ट का कमांड दुभाषिया हैcmd ; और echo.यह केवल एक पथ तत्व को प्रिंट करने के लिए कमांड है जो यह सुनिश्चित करता है कि यदि पथ तत्व खाली है तो यह अन्य कार्यक्षमता के लिए स्विच नहीं करता हैecho । पहला echoवास्तव में भी होना चाहिए echo.।
यह कमांड-लाइन चर प्रतिस्थापन का उपयोग कर रहा है। %path:;=&echo.%का अर्थ है " %path%, लेकिन सभी को प्रतिस्थापित ;करें &echo."। इसका मतलब यह है कि set path=C:\Windows\System32;C:\Windows\;;C:\Python37;:
echo %path:;=&echo.%
हो जाता है:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
चूंकि &एक कमांड विभाजक है, यह इसके बराबर है:
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
डॉस बैच की quirks के कारण, जब इसके बाद कुछ भी नहीं है सिवाय इसके केecho. समान है। अगर ऐसा है, तो यह आपको बताने या बताने के बजाय, कुछ भी प्रिंट नहीं करता है। यह उत्पादन करेगा:echo ECHO
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
वास्तव में, यह echo.%path:;=&echo.%उस मामले के लिए जिम्मेदार होना चाहिए जहां से %PATH%शुरू होता है ;, लेकिन यह आदेश वैसे भी बहुत चालाक है।
विस्तृत detalias में हो रही है, के बजाय वास्तव में echo( इस्तेमाल किया जाना चाहिए echo.। ऐसा इसलिए है क्योंकि echo.जब आपको कोई फ़ाइल मिली है echo, तो समस्या हो सकती है और यह धीमा है क्योंकि इसे डिस्क ( %CD%और मुझे भी लगता है कि सभी %PATH%) को हर बार इसे चलाने की जांच करनी होगी । (मेरे पास Windows की एक प्रति नहीं है इसलिए मैं इसे स्वयं नहीं देख सकता; क्या यह सिर्फ %CD%या कहीं भी है %PATH%जिसमें echoफ़ाइल की उपस्थिति प्रभावित होगी echo., और यह क्या करता है?)
echo), लेकिन मुझे वास्तव में याद नहीं है। ;(
echo.वह है जो लोग वर्षों पहले सबसे अधिक प्रसारित करते थे। यह कई पुस्तकों में एक है। दक्षता समस्या नहीं है। विभिन्न फ़ाइलों के अस्तित्व में होने पर निराला व्यवहार। जब मैंने cmdOS / 2 में 16-बिट के लिए 32-बिट प्रतिस्थापन लिखा , तो इन विराम चिह्नों पर कमांड नाम तोड़ना और यह अत्यधिक अनियमित पार्सिंग व्यवहार उन चीजों में से एक है, जिन्हें मैंने जानबूझकर डुप्लिकेट नहीं किया था, और जिसे मैंने दस्तावेज पर रखा था मतभेदों की सूची। मैंने echodotइसके बजाय एक बाहरी आदेश दिया, जिसे कोई भी echo.इच्छानुसार उपनाम दे सकता है ।
echo(जो केवल सुरक्षित संस्करण है।
echo.काम नहीं हो सकता ।