अगर मैं cmd ​​की विंडो में क्लिक करता हूं तो यह वास्तव में क्या करता है?


45

मान लीजिए कि मैं cmd.exe चलाता हूं और लोकलहोस्ट पिंग करता हूं । लेकिन यह है कि मैं पिंग स्थानीय होस्ट फिर बाद मैं विंडो में क्लिक करें और पिंग बंद हो जाता है जब तक मैं प्रेस दर्ज

जब मैं विंडो में क्लिक करता हूं तो वास्तव में क्या होता है? क्या यह प्रक्रिया को निलंबित करता है या कुछ और? मैंने इस समस्या को स्पष्ट करने के लिए एक स्क्रीनशॉट संलग्न किया है।

नोट: मैं वास्तव में क्लिक नहीं करता हूं, लेकिन माउस का उपयोग करके खींचें जो विंडो में एक सफेद बॉक्स बनाता है जैसा कि आप स्क्रीनशॉट पर देख सकते हैं।

संपादित करें: आगे स्पष्टीकरण: मैं वास्तव में जानना चाहता हूं कि क्या खिड़की को खींचना सीएमडी प्रक्रिया को रोकता है या नहीं?

संपादित करें: और भी अधिक स्पष्टीकरण: मुझे पता है कि मैं त्वरित संपादन का उपयोग कर रहा हूं और मेरे द्वारा चुनी गई सामग्री की प्रतियां दर्ज कर रहा हूं। मुझे नहीं पता कि पृष्ठभूमि में क्या होता है।

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


2
BTW, आप इस व्यवहार को बदलने के लिए UserVoice पर वोट कर सकते हैं: wpdev.uservoice.com/forums/…
कार्ल वॉल्श

अच्छा लगा। मैंने इस पर मतदान किया।
एडम एरॉल्ड

मतदान मुझे केवल एक 404 पृष्ठ पर ले जा रहा है
केली बैंग

1
और अधिक महत्वपूर्ण यहाँ कैसे बंद इस देवता भयंकर सुविधा को चालू करने के लिए stackoverflow.com/a/37578608/463967
एलन मैकडोनाल्ड

जवाबों:


27

जब आप cmd।

जब आप चयन मोड से बाहर निकलते हैं, तो प्रक्रिया सामान्य रूप से फिर से शुरू होगी।

आप ping www.google.com -tअपने cmd.exe विंडो में टाइप करके और आउटपुट के कुछ क्षेत्र को चुनकर इसका परीक्षण कर सकते हैं । आप इसे रोकेंगे, और जब आप आउटपुट रद्द करेंगे, तो इसे फिर से शुरू करेंगे।

संपादित करें: फ्रेंक की टिप्पणी के अनुसार, आप एक उपकरण का उपयोग कर सकते हैं जैसे कि विंडसर्क देखने के लिए कि गतिविधि तब भी होती है जब आप चयन करते हैं, और फिर रुक जाते हैं।


3
यह अकेले इसका परीक्षण नहीं करता है। आपको Wireshark चलाने और यह देखने की भी ज़रूरत है कि ICMP पैकेट भेजा जाना बंद हो गया है या नहीं। यदि हां, तो आप सही हैं कि प्रक्रिया निलंबित है। यदि नहीं, तो प्रक्रिया निलंबित नहीं है, और आउटपुट बस बफ़र्ड हो जाता है (जब तक कि बफ़र्स नहीं भरते हैं, तब या तो इसे निलंबित कर दिया जाएगा या डेटा खो जाएगा)।
Fran

1
मुझे पूरा यकीन है कि @Fran सही है - यदि आप चयन मोड में लंबे समय तक इंतजार करते हैं, तो आउटपुट का एक पूरा गुच्छा एक बार में प्रकट नहीं होता है?
इज़काता

1
इससे मुझे बहुत गुस्सा आया, लेकिन मुझे पता चला कि यदि आप cmd विंडो के गुणों पर जाते हैं, तो आप "क्विक एडिट मोड" को अचयनित कर सकते हैं और आप विंडो में क्लिक करके सिलेक्ट मोड में प्रवेश नहीं करेंगे।
Zitrax

2
@Zitrax हाँ, यही कारण है कि आप गलती से ऐसा होने से रोक सकते हैं। मैं अक्सर अपनी कमांड विंडो से चीजों को कॉपी करता हूं, इसलिए मैं ऐसा नहीं करता। (ठीक है, वास्तव में मैं Consolez का उपयोग करता हूं जिसमें वह मुद्दा नहीं है)
JohnL

1
इसे " ब्लॉकिंग " कहा जाता है ... अर्थात: एप्लिकेशन कॉल करता है write()लेकिन यह अटक जाता है।
Attie

50

एक बार जब आप कमांड प्रॉम्प्ट विंडो में क्लिक करते हैं, तो कंसोल होस्ट आउटपुट को लिखने की अनुमति नहीं देगा। एप्लिकेशन स्वयं चलता रहता है, लेकिन स्क्रीन पर कुछ भी नहीं लिखा जाता है।

बेशक, जब तक वहाँ केवल एक ही धागा है, यह मूल रूप से एक ही बात है क्योंकि आपकी प्रक्रिया जमी हुई है। जैसा कि एक धागा अधिक काम करने से पहले कुछ आउटपुट लिखने की कोशिश करता है।

यदि मैं ping -t localhostकमांड प्रॉम्प्ट विंडो में चलाता हूं और क्लिक करता हूं, तो मैं प्रोसेस एक्सप्लोरर केping.exe साथ मुख्य थ्रेड के कॉल स्टैक का निरीक्षण कर सकता हूं ।

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

हम देख सकते हैं कि ping.exeकुछ आउटपुट लिखने की कोशिश की गई। इसे write()सी रनटाइम लाइब्रेरी में बुलाया गया। वह फ़ंक्शन, किसी बिंदु पर, GetConsoleMode को कॉल करता है । जैसा कि लगता है, वह फ़ंक्शन यह जांच करेगा कि क्या उपयोगकर्ता वर्तमान में मार्क मोड में है और यदि आवश्यक हो तो निष्पादन निष्पादित करें।

आगे के विश्लेषण

हम आगे इस व्यवहार का सबूत विरेशर के pingसाथ व्यवहार की जांच करके दे सकते हैं

जब ping -t superuser.comहम Wireshark में निम्न आउटपुट देखते हैं:
यहाँ छवि विवरण दर्ज करें

अब, कमांड प्रॉम्प्ट में एक बॉक्स चिह्नित करते हैं।
यहाँ छवि विवरण दर्ज करें
अचानक, विंडसरक में कोई और पिंग लॉग नहीं किया जाता है। pingअब कोई पैकेट नहीं भेज रहा है।

लेकिन हम पहले से ही जानते थे कि ...

ठीक है, चलो देखते हैं कि क्या आउटपुट वास्तव में यहाँ मुद्दा है! आइए आउटपुट को NULडिवाइस पर निर्देशित करें:

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

अब, कोई भी ouput नहीं है। अब हम पूरे दिन बॉक्स में टेक्स्ट को चिह्नित कर सकते हैं, पैकेट्स को Wireshark में लॉग इन किया जाएगा।

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


यदि मैंने मूल उत्तर के लिए पहले से ही +1 नहीं किया था, तो मैं अब "आगे के विश्लेषण" के लिए +1 करूँगा
JohnL

6

ऐसा इसलिए है क्योंकि विंडो ने मार्क मोड में प्रवेश किया है। जब आप एंटर दबाते हैं, तो यह चयनित टेक्स्ट को क्लिपबोर्ड पर कॉपी करता है। मेरी जानकारी में, इसके लिए कोई सेटिंग नहीं है, इसलिए मुझे यकीन नहीं है कि ऐसा क्यों हो रहा है जब आप बस विंडो में क्लिक करते हैं। आम तौर पर आपको "मार्क" पर राइट क्लिक और हिट करना होगा। यह सुनिश्चित करने के लिए जांचें कि कोई कुंजी आपके कीबोर्ड पर नहीं लगी है।


और "मार्क मोड" क्या करता है? क्या यह प्रक्रिया को निलंबित करता है?
एडम एरॉल्ड

मार्क मोड का उपयोग कमांड विंडो से टेक्स्ट को कॉपी करने के लिए किया जाता है। AFAIK है कि केवल उपयोग है, हालांकि मुझे लगता है कि वहाँ दूसरों हो सकता है।
गैरेट

7
सेटिंग को क्विक एडिट मोड कहा जाता है। ऊपरी बाएँ हाथ के कोने में आइकन पर क्लिक करें, गुण चुनें और विकल्प टैब पर त्वरित संपादन मोड चुनें। मुझे जो पता है उससे, यह प्रक्रिया पृष्ठभूमि में जारी रहेगी जब तक कि उसे कंसोल के साथ बातचीत करने की आवश्यकता नहीं होती है, जिस समय यह ब्लॉक हो जाएगा
JohnL

@ जॉन कृपया एक जवाब बनाएं क्योंकि आपकी टिप्पणी वह है जो मैं देख रहा हूं।
एडम एरॉल्ड

@edem ने उत्तर दिया :)
JohnL

6

आपकी सीएमडी खिड़कियां त्वरित संपादन मोड में होती हैं जो स्क्रीन पर क्लिक करने पर स्वचालित रूप से संपादन मोड में प्रवेश करती हैं। Enter सफेद बॉक्स में पाठ की प्रतिलिपि बनाने और संपादन मोड से बाहर निकलने के लिए है।

आम तौर पर सीएमडी केवल संपादन मोड दर्ज करते हैं जब आप ब्लैक स्क्रीन पर राइट क्लिक करते हैं और मार्क चुनते हैं।

वापस सामान्य में बदलने के लिए, विंडोज़ के शीर्षक बार पर राइट क्लिक करें और गुण चुनें, विकल्प टैब और "क्विक एडिट मोड" को अचयनित करें और ठीक पर क्लिक करें।


3

जब आप विंडो से कॉपी करने के लिए टेक्स्ट का चयन कर रहे हैं (जब Markमोड में) सिस्टम उस विंडो में वर्तमान प्रक्रिया को निलंबित कर देता है।

उदाहरण बैच फ़ाइल:

:test
echo %0
goto test

जब यह चलाया जाता है, जैसे ही मैं कॉपी करने के लिए क्षेत्र को चिह्नित करता हूं, स्क्रीन स्क्रॉल करना बंद कर देती है


मैं ठीक उसी चीज़ को पोस्ट करने वाला था (सिवाय इसके कि मेरी बैच फ़ाइल थी echo blah↵%0)। :-)
21

1

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


0

इस कथन को आगे चिह्नित करने के लिए कि प्रक्रिया "मार्क मोड" में रुकती है, उदाहरण के लिए एक माउस क्लिक के दौरान या cmd.exe विंडो सीमाओं के अंदर खींचें, लेकिन प्रगति में उदाहरण के साथ पूरी तरह से समाप्त होने के बाद ही किसी भी ऑपरेशन को रोक देता है, मैं एक अप्रत्यक्ष प्रमाण प्रदान करता हूं:

[1378:000f][2018-10-08T13:26:20] END: Verifying package "AndroidEmulator,version=26.0.0.2"
[1378:000f][2018-10-08T13:26:20] BEGIN: Verifying package "AndroidImage_ARM_API23,version=20.0.0.3"
[1378:000f][2018-10-08T13:26:20] Verifying package 'AndroidImage_ARM_API23,version=20.0.0.3'
[1378:000c][2018-10-08T13:26:26] SHA256 verification for 'AndroidImage_x86_API23,version=20.0.0.3\x86-23_r20.zip' succeeded. Hash: X
[1378:0025][2018-10-08T14:09:03] BEGIN: Verifying "AndroidImage_ARM_API23,version=20.0.0.3\AndroidSDKPrivateInstall.ps1"
[1378:0012][2018-10-08T14:09:03] BEGIN: Verifying "AndroidImage_ARM_API23,version=20.0.0.3\armeabi-v7a-23_r20.zip"
[1378:0012][2018-10-08T14:09:03] Authenticode verification returned 0x800b0003 for path: AndroidImage_ARM_API23,version=20.0.0.3\armeabi-v7a-23_r20.zip.
[1378:0012][2018-10-08T14:09:03] Retrying validation for: AndroidImage_ARM_API23,version=20.0.0.3\armeabi-v7a-23_r20.zip
[1378:000c][2018-10-08T14:09:03] Authenticode verification returned 0x800b0003 for path: AndroidImage_x86_API23,version=20.0.0.3\x86-23_r20.zip.

आप Visual Studio स्थापना की लॉगिंग स्ट्रीम देख रहे हैं जहाँ Visual Studio सेटअप कमांड लाइन उपयोगिता सभी स्थापित वर्कलोड को सत्यापित कर रही है।

13:26:26 पर मैंने कमांड प्रॉम्प्ट विंडो के अंदर क्लिक किया। स्क्रीन पर आउटपुट 14:09:03 तक रहता है जब मैंने "मार्क मोड" से बाहर निकलने के लिए Enter मारा होगा।

अब ध्यान दें कि 13:26:26 के बाद, प्रक्रिया x86-23_r20.zip हैश की जांच करने के लिए समाप्त होती है, संदेश " सफल हुआ। हैश: X " और 14:09:03, " BEGIN: सत्यापन" संदेश के साथ किसी अन्य फ़ाइल के साथ पुनरारंभ करें। [..] AndroidSDKPStreetInstall.ps1 "

पॉज़ विज़ुअल स्टूडियो सेटअप कमांड लाइन उपयोगिता के दौरान, उस फ़ाइल के सत्यापन का निष्कर्ष निकाला गया था जो प्रसंस्करण कर रही थी, और ठीक उसी समय जब नियंत्रण को कंसोल पर लौटना था, एक नया हैश चेक काम शुरू किया।

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