पॉशशेल में बैश के `सोर्स` कमांड के बराबर?


15

बैश स्क्रिप्ट लाइन-बाय-लाइन चलाने के लिए (ताकि उदाहरण के लिए पर्यावरण चर को संरक्षित करने के लिए), एक निम्नलिखित करता है:

$ . myscript.sh

या:

$ source myscript.sh

अन्य बातों के अलावा - - के माध्यम से शीघ्र का मूल्य निर्धारित करता है मैं एक PowerShell स्क्रिप्ट है समारोह कहा जाता है prompt। बस इस स्क्रिप्ट को चलाने से ("। \ Myscript.ps1") प्रॉम्प्ट नहीं बदलता है। हालाँकि, एक कमांड के रूप में फंक्शन लाइन-बाय-लाइन चल रहा है।

तो क्या मुझे प्रभावी रूप से sourcePowerShell के लिए कमांड की तरह कुछ चाहिए । क्या यह संभव है?

EDIT : क्या इस पोस्ट को स्टैकओवरफ़्लो में स्थानांतरित किया जाना चाहिए?

क्लेरिफिकेशन 1 : चूंकि मैं इस फ़ंक्शन को केवल एक आवश्यकता के आधार पर चलाता हूं (यानी, प्रत्येक पावरशेल सत्र और / या हमेशा के लिए नहीं), मैं अपने पावरशेल स्टार्टअप प्रोफाइल में स्टोर नहीं करना चाहता।


नोट: आपके दो बैश कमांड अलग हैं। आप शायद दूसरे नाम में डॉट का मतलब नहीं था या आप दोनों का मतलब स्क्रिप्ट नाम की शुरुआत में "./" (वर्तमान निर्देशिका) है।
अगली सूचना तक रोक दिया गया।

इसे तय किया (डॉट को हटाकर)
श्रीधर रत्नाकुमार ने

जवाबों:


29

आप PowerShell में " dot source " भी कर सकते हैं । आपको केवल यह सुनिश्चित करने की आवश्यकता है कि आप पूर्ण पथ निर्दिष्ट करें। इसलिए, यदि आप जिस स्क्रिप्ट को लोड करना चाहते हैं, वह उस स्थानीय निर्देशिका में है जिसे आप करेंगे:

PS C:\>. .\myscript.ps1

यह सही उत्तर है :) पावरबेल में डॉट सोर्सिंग बहुत काम करता है जैसे बैश में
जयकुल

मुझे नहीं पता था कि आप ऐसा कर सकते हैं। अच्छा।
डेवपरिलो

वाह! कैसे मैं पहले यह कोशिश नहीं की? :)
श्रीधर रत्नाकुमार

1
वैसे भी क्या यह मौजूदा cmd स्क्रिप्ट के साथ किया जा सकता है? एक cmd स्क्रिप्ट निष्पादन परिणाम को पॉवरशेल वातावरण में संशोधित किया जा रहा है?
मटर

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