Skip to main content

विंडोज 10 के बैश शैल से विंडोज प्रोग्राम कैसे चलाएं

विंडोज 10 के बैश शैल से विंडोज प्रोग्राम कैसे चलाएं

Geoffrey Carr

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

आप क्या जानना चाहते है

यहां कुछ बुनियादी विवरण दिए गए हैं जिन्हें आपको इस सुविधा के बारे में जानने की आवश्यकता है:

  • उपभोक्ता खाता: बैश खोल से लॉन्च किए गए कार्यक्रम इस तरह चलेंगे जैसे कि वे वर्तमान विंडोज उपयोगकर्ता खाते द्वारा लॉन्च किए गए थे।
  • अनुमतियां: इन कार्यक्रमों में Bash.exe प्रक्रिया के समान अनुमतियां होंगी। इसलिए, यदि आप इन आदेशों को व्यवस्थापक पहुंच प्राप्त करना चाहते हैं, तो आपको बैश खोल को व्यवस्थापक के रूप में चलाने की आवश्यकता होगी।
  • कार्यकारी डाइरेक्टरी: विंडोज प्रोग्राम बैश खोल के समान "काम करने वाली निर्देशिका" साझा करते हैं। इसलिए, यदि आप एक कमांड चलाते हैं जो वर्तमान निर्देशिका की सामग्री सूचीबद्ध करता है, तो यह बैश खोल में वर्तमान कार्यशील निर्देशिका की सामग्री सूचीबद्ध करेगा। उपयोग cd काम करने वाली निर्देशिकाओं को बदलने के लिए आदेश।

इसे ध्यान में रखते हुए, आइए देखें कि प्रोग्राम कैसे चलाया जाए।

विंडोज प्रोग्राम कैसे चलाएं

विंडोज प्रोग्राम चलाने के लिए, बैश खोल में प्रोग्राम की .exe फ़ाइल का पथ दर्ज करें। याद रखें कि आपका विंडोज सी: ड्राइव बैश में / mnt / c पर उपलब्ध है। बैश पर्यावरण भी केस-संवेदी है, इसलिए आपको सही पूंजीकरण निर्दिष्ट करना होगा।

मान लीजिए कि आप C: Windows System32 PING.EXE पर स्थित पिंग उपयोगिता लॉन्च करना चाहते हैं। आप निम्न आदेश चलाएंगे:

/mnt/c/Windows/System32/PING.EXE

निम्न आदेश काम नहीं करेगा, क्योंकि बैश केस-संवेदी है:

/mnt/c/windows/system32/ping.exe

यदि पथ में प्रोग्राम फ़ाइलें फ़ोल्डर्स की तरह रिक्त स्थान और ब्रैकेट जैसे जटिल वर्ण होते हैं तो यह थोड़ा अधिक जटिल होता है। आपको "" वर्ण के साथ उपसर्ग करके रिक्त स्थान, ब्रैकेट और अन्य जटिल वर्णों को "बचाना" है।

उदाहरण के लिए, मान लें कि आप सी: प्रोग्राम फ़ाइलें (x86) Internet Explorer iexplore.exe पर स्थित इंटरनेट एक्सप्लोरर प्रोग्राम को चलाने के लिए चाहते थे। आपको बैश में निम्न आदेश चलाने की आवश्यकता होगी:

/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe

स्पेस और ब्रैकेट वर्णों से पहले "" पर ध्यान दें। ये वर्ण "बच निकले" या बैश को यह नहीं पता होगा कि वर्ण फ़ाइल पथ का हिस्सा हैं।

एक कमांड के लिए एक तर्क कैसे पास करें

बैश खोल आपके द्वारा निष्पादित आदेशों पर सीधे तर्क देता है।

उदाहरण के लिए, यदि आप example.com पिंग करना चाहते हैं, तो आप दौड़ेंगे:

/mnt/c/Windows/System32/PING.EXE example.com

या, यदि आप नोटपैड में विंडोज होस्ट फ़ाइल खोलना चाहते हैं, तो आप दौड़ेंगे:

/mnt/c/Windows/System32/notepad.exe 'C:WindowsSystem32driversetchosts'

विंडोज प्रोग्राम पर सीधे फ़ाइल पथ पास करते समय आप मानक विंडोज फ़ाइल पथ का उपयोग करते हैं। ऐसा इसलिए है क्योंकि बैश सीधे तर्क को पास करता है। Notepad.exe और अन्य विंडोज प्रोग्राम विंडोज फ़ाइल पथ की अपेक्षा करते हैं।

बिल्ट-इन कमांड कैसे चलाएं

कुछ विंडोज आदेश .exe फ़ाइलें नहीं हैं, लेकिन कमांड प्रॉम्प्ट में ही बनाए जाते हैं। उदाहरण के लिए, इसमें शामिल है dir आदेश आप आमतौर पर एक कमांड प्रॉम्प्ट में चला सकते हैं। ऐसा आदेश चलाने के लिए, आपको चलाने की आवश्यकता है cmd.exe कमांड प्रॉम्प्ट से जुड़ी द्विआधारी और इसे कमांड के रूप में कमांड के रूप में पास करें, जैसे:

/mnt/c/Windows/System32/cmd.exe /C command

उदाहरण के लिए, चलाने के लिए dir कमांड प्रॉम्प्ट में बनाया गया आदेश, आप निम्न आदेश चलाएंगे:

/mnt/c/Windows/System32/cmd.exe /C dir

पथ में निर्देशिका कैसे जोड़ें

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

export PATH=$PATH:/mnt/c/Windows/System32

फिर आप System32 फ़ोल्डर में स्थित Windows .exe फ़ाइलों को सीधे चला सकते हैं, जैसे:

PING.exe example.com notepad.exe cmd.exe /C dir

एक कमान के आउटपुट को दूसरे को कैसे पाइप करें

विंडोज कमांड का आउटपुट लिनक्स कमांड पर पाइप किया जा सकता है, और इसके विपरीत। उदाहरण के लिए, आप इसका उपयोग कर सकते हैंipconfig.exe -all अपने नेटवर्क इंटरफेस के बारे में विवरण सूचीबद्ध करने के लिए कमांड करें और इसे लिनक्स पर पाइप करें grep आउटपुट खोजने के लिए कमांड। उदाहरण के लिए, अपने कनेक्शन के बारे में सभी जानकारी सूचीबद्ध करने और "आईपीवी 4 पता" से मेल खाने वाले वर्गों की खोज करने के लिए, आप दौड़ेंगे:

/mnt/c/Windows/System32/ipconfig.exe -all | grep 'IPv4 Address'

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

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

Link
Plus
Send
Send
Pin