Windows PowerShell स्क्रिप्ट में चर क्षेत्र का उपयोग करें

पूरा किया

सहज रूप से, आप मान लेंगे कि $computer नाम दिया गया चर जिसे आपने फ़ंक्शन में सेट किया है, फ़ंक्शन पूरा होने पर स्क्रिप्ट में एक्सेस किया जा सकता है। हालाँकि, ऐसा नहीं है। चर का एक विशिष्ट दायरा होता है और वे सीमित होते हैं कि वे स्कोप के बीच कैसे इंटरैक्ट करते हैं।

निम्न तालिका तीन क्षेत्रों का वर्णन करती है और वे चर उपयोग को कैसे प्रभावित करते हैं।

तालिका 1: स्कोप

स्कोप विवरण
व्‍यापक वैश्विक क्षेत्र Windows PowerShell प्रॉम्प्ट के लिए है। Windows PowerShell प्रॉम्प्ट पर सेट किए गए चरों की उस Windows PowerShell प्रॉम्प्ट पर प्रारंभ की गई सभी स्क्रिप्ट में समीक्षा की जा सकती है. Windows PowerShell प्रॉम्प्ट पर बनाए गए चर अन्य Windows PowerShell संकेतों में या Windows PowerShell एकीकृत स्क्रिप्टिंग परिवेश (ISE) के उदाहरणों में मौजूद नहीं हैं.
लिपि स्क्रिप्ट का दायरा एकल स्क्रिप्ट के लिए है। एक स्क्रिप्ट के भीतर सेट किए गए चर की समीक्षा उस स्क्रिप्ट के भीतर सभी कार्यों द्वारा की जा सकती है। यदि आप स्क्रिप्ट क्षेत्र में एक चर मान सेट करते हैं जो पहले से ही वैश्विक क्षेत्र में मौजूद है, तो स्क्रिप्ट क्षेत्र में एक नया चर बनाया जाता है। फिर दो अलग-अलग क्षेत्रों में एक ही नाम के दो चर होते हैं। इस बिंदु पर, जब आप स्क्रिप्ट में चर के मान की समीक्षा करते हैं, तो स्क्रिप्ट क्षेत्र में चर का मान दिया जाता है।
फलन फ़ंक्शन स्कोप एकल फ़ंक्शन के लिए है। किसी फ़ंक्शन के भीतर सेट किए गए चर अन्य फ़ंक्शंस या स्क्रिप्ट के साथ साझा नहीं किए जाते हैं। यदि आप फ़ंक्शन क्षेत्र में एक चर मान सेट करते हैं जो पहले से ही वैश्विक या स्क्रिप्ट क्षेत्र में मौजूद है, तो फ़ंक्शन क्षेत्र में एक नया चर बनाया जाता है। फिर, दो अलग-अलग क्षेत्रों में एक ही नाम के दो चर हैं।

नोट

भ्रम से बचने के लिए, अलग-अलग क्षेत्रों में एक ही चर नामों का उपयोग करने से बचना सबसे अच्छा अभ्यास है।

उच्च-स्तरीय क्षेत्र में किसी चर की समीक्षा करने के अतिरिक्त, आप उस चर को संशोधित करते समय चर के कार्यक्षेत्र को विशेष रूप से संदर्भित करके भी संशोधित कर सकते हैं. किसी फ़ंक्शन से स्क्रिप्ट क्षेत्र चर को संशोधित करने के लिए, निम्न सिंटैक्स का उपयोग करें:

$script:var = "Modified from function"

स्कोप के बीच चर को संशोधित करने से बचने के लिए यह सबसे अच्छा अभ्यास है, क्योंकि ऐसा करने से भ्रम पैदा हो सकता है। इसके बजाय, फ़ंक्शन के आउटपुट के बराबर स्क्रिप्ट स्कोप चर सेट करें। यदि फ़ंक्शन में डेटा एक चर में है, तो आप इसे स्क्रिप्ट पर वापस पास करने के लिए Return() का उपयोग कर सकते हैं।

स्क्रिप्ट क्षेत्र में वापस चर मान पास करने के लिए फ़ंक्शन के अंत में Return() का उपयोग करने का एक उदाहरण निम्न है:

Return($users) 

नोट

किसी फ़ंक्शन में Return() का उपयोग करके निर्दिष्ट डेटा को लौटाए जा रहे डेटा की पाइपलाइन में जोड़ता है, लेकिन पाइपलाइन में मौजूदा डेटा को प्रतिस्थापित नहीं करता है। स्क्रिप्ट विकास के भाग के रूप में, आपको यह सत्यापित करने की आवश्यकता है कि फ़ंक्शन द्वारा कौन सा डेटा लौटाया जा रहा है।