पावरशेल परम: सिंटैक्स, प्रकार, गुण, तर्क और उदाहरण

15 जून, 2021 16760 विचारों पावरशेल परम: सिंटैक्स, प्रकार, गुण, तर्क और उदाहरण

पावरशेल स्क्रिप्ट डेवलपर्स उन्नत कार्यों में पैरामीटर जोड़ने के लिए पावरहेल परम ब्लॉक का उपयोग करते हैं। फ़ंक्शन चलाने वाला कोई भी व्यक्ति पावरशेल परम के साथ जोड़े गए पैरामीटर तक पहुंच सकता है।

इसके अतिरिक्त, परम ब्लॉक के साथ किसी फ़ंक्शन में जोड़े गए पैरामीटर के अलावा, Windows PowerShell स्वचालित रूप से सामान्य पैरामीटर जोड़ता है।

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

पोस्ट विषय ब्राउज़ करें

पावरशेल परम ब्लॉक का सिंटैक्स

पावरशेल परम ब्लॉक का सिंटैक्स

पावरशेल परम का सिंटैक्स है…

|_+_|

फ़ंक्शन में पैरामीटर जोड़ने के लिए, शब्द से शुरू करें विराम , उसके बाद पैरामीटर ब्लॉक, ()। यहाँ एक परम ब्लॉक का एक सरल रूप है…

|_+_| सीएमडीलेट बाइंडिंग विशेषता वैकल्पिक है और यह परम ब्लॉक के बाहर परिभाषित एकमात्र विशेषता है। इसके बारे में बाद में गाइड में

परम ब्लॉक के भीतर - परम () - आप पैरामीटर विशेषताओं और उनके तर्कों को परिभाषित करेंगे। इसके अलावा, एक पैरामीटर विशेषता एक [()] ब्लॉक में संलग्न है।

उपरोक्त सिंटैक्स कोड में, मैंने सभी पैरामीटर तर्कों को बोल्ड किया है। बहुत अधिक पैरामीटर तर्क हैं - वाक्य रचना में केवल दृष्टांत उद्देश्यों के लिए हैं और किसी भी तरह से संपूर्ण नहीं हैं।

पैरामीटर ब्लॉक के भीतर, आप अल्पविराम द्वारा अलग किए गए पैरामीटर तर्कों को परिभाषित करेंगे। पावरशेल परम विशेषता का एक उदाहरण है पैरामीटर गुण।

इसके अतिरिक्त, एक परम तर्क का एक उदाहरण है अनिवार्य तर्क। एक परम तर्क का एक और उदाहरण है पैरामीटरसेटनाम .

अंत में, आप पैरामीटर के नाम को परिभाषित करेंगे। इसके अलावा, आप पैरामीटर डेटा प्रकार भी निर्दिष्ट करेंगे।

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

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

पावरशेल पैरामीटर्स के प्रकार

पावरशेल परम पैरामीटर के प्रकार

सबसे सामान्य प्रकार के पैरामीटर जिन्हें आप सेट कर सकते हैं: डोरी या स्विच पैरामीटर। इसके अतिरिक्त, आप यह भी परिभाषित कर सकते हैं पूर्णांक , बूल , दिनांक समय या चार पैरामीटर प्रकार।

इस खंड में, मैं इस प्रकार के कुछ मापदंडों के बारे में बताऊंगा। मैं कुछ उदाहरण भी दूंगा कि उन्हें एक परम ब्लॉक में कैसे परिभाषित किया जाए।

पावरशेल परम डोरी पैरामीटर

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

Windows PowerShell में, एक स्ट्रिंग संख्या, शब्द या वर्ण हो सकती है। विशेष रूप से, जो कुछ भी आप डबल या सिंगल कोट में घोषित करते हैं वह एक स्ट्रिंग है।

पावरशेल में, स्ट्रिंग का ऑब्जेक्ट प्रकार है सिस्टम.स्ट्रिंग .

पावरशेल पैरामीटर को स्ट्रिंग पैरामीटर के रूप में घोषित करने के लिए, पैरामीटर के नाम से पहले, शब्द संलग्न करें डोरी कोष्ठक के भीतर। यहाँ एक उदाहरण है…

|_+_|

पावरशेल परम पूर्णांक पैरामीटर

एक पूर्णांक डेटा प्रकार एक 32-बिट हस्ताक्षरित पूर्णांक है। अंग्रेजी में, an पूर्णांक एक संख्या है, उदाहरण के लिए 1, 2 या 3।

एक के विपरीत डोरी पैरामीटर डेटा प्रकार जो किसी भी प्रकार का डेटा ले सकता है, एक पूर्णांक पैरामीटर बहुत निर्देशात्मक है।

यदि आप एक परिभाषित करते हैं पूर्णांक पैरामीटर, पैरामीटर केवल संख्या स्वीकार कर सकता है। इसके अलावा, यदि आप के मान के रूप में शब्द दर्ज करते हैं पूर्णांक पैरामीटर, पावरशेल एक त्रुटि संदेश फेंक देगा।

इससे पहले कि मैं आपको दिखाऊं कि पावरशेल परम को कैसे परिभाषित किया जाए पूर्णांक पैरामीटर, यहाँ एक सामान्य उदाहरण है कि एक इंट डेटा प्रकार को कैसे परिभाषित किया जाए…

|_+_|

अगर मैं पावरशेल में कोड चलाता हूं, तो यह वापस आ जाएगा 123 .

पावरशेल परम इंट पैरामीटर

इसके विपरीत, अगर मैं प्रतिस्थापित करता हूं, तो 123 इसके साथ एक int है, पावरशेल एक त्रुटि संदेश फेंक देगा।

|_+_|

अब जब आपके पास एक हो गया है पूर्णांक डेटा प्रकार क्रैश कोर्स, पावरशेल परम बनाने के लिए पूर्णांक पैरामीटर जिसे नंबर कहा जाता है, यहाँ कोड है…

|_+_|

यह आपकी स्क्रिप्ट या फ़ंक्शन के उपयोगकर्ताओं को सही डेटा प्रकार प्रदान करने के लिए बाध्य करेगा।

पावरशेल परम दिनांक समय पैरामीटर

एक की तरह पूर्णांक पैरामीटर, ए दिनांक समय पैरामीटर स्वीकार किए जाने वाले इनपुट के प्रकार के बारे में भी बहुत निर्देशात्मक है। जैसा कि नाम का तात्पर्य है, दिनांक समय पैरामीटर केवल दिनांक और समय प्रारूप के इनपुट स्वीकार करेगा।

यदि आप एक पावरशेल पैरामीटर को परिभाषित करना चाहते हैं जो केवल तिथियों को स्वीकार करेगा, तो नीचे दिए गए नमूना कोड का उपयोग करें…

|_+_|

इस उदाहरण में, दिनांक दर्ज करें पैरामीटर का नाम है। इसके अतिरिक्त, दिनांक समय डेटा प्रकार को परिभाषित करता है।

पावरशेल परम स्विच पैरामीटर

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

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

जिस तरह से आप परिभाषित करते हैं a स्विच पैरामीटर अन्य प्रकार के पैरामीटर को परिभाषित करने के तरीके के समान है। हालांकि, के स्थान पर स्विच , पूर्णांक , या दिनांक और समय , शब्द का प्रयोग करें स्विच .

उदाहरण के लिए पावरशेल परम को परिभाषित करने के लिए स्विच पैरामीटर, निर्यातसीएसवी , नीचे दिए गए कोड का उपयोग करें…

|_+_|

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

आप उपयोगकर्ता को परिणाम को टेक्स्ट फ़ाइल या CSV फ़ाइल में निर्यात करने का विकल्प भी देना चाह सकते हैं।

फ़ंक्शन को कोड करने का एक तरीका 3 स्विच पैरामीटर बनाना है। उपयोगकर्ता तब किसी एक पैरामीटर का चयन कर सकता है, इस पर निर्भर करता है कि वे फ़ंक्शन को परिणाम कैसे देना चाहते हैं।

इस प्रकार के पैरामीटर के लिए उपयोगकर्ता को इनपुट दर्ज करने की आवश्यकता नहीं होती है। केवल पैरामीटर का चयन करके, फ़ंक्शन तदनुसार आउटपुट प्रदर्शित करेगा।

आप विशिष्ट डेटा प्रकारों के साथ अन्य पावरशेल पैरामीटर भी परिभाषित कर सकते हैं। पॉवरशेल डेटा प्रकारों के बारे में जानने के लिए, इस लिंक पर जाएँ - पावरशेल डेटा प्रकारों को कैसे परिभाषित करें .

पावरशेल परम पैरामीटर गुण और तर्क

पावरशेल परम पैरामीटर गुण और तर्क

इस गाइड के पावरशेल परम सिंटैक्स में, मैंने संकेत दिया कि पावरशेल पैरामीटर में विशेषताएँ हैं। इसके अलावा, मैंने यह भी बताया कि प्रत्येक पैरामीटर विशेषता में तर्क भी होते हैं।

इस खंड में, मैं पैरामीटर विशेषताओं और उनके तर्कों पर चर्चा करूंगा।

पैरामीटर विशेषताओं और उनके तर्कों की व्याख्या करने के लिए, मैं इस गाइड के पहले खंड में पेश किए गए पावरशेल परम के सिंटैक्स का उल्लेख करूंगा।

|_+_|

पावरशेल परम सीएमडीलेट बाइंडिंग गुण

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

इस गाइड के सिंटैक्स सेक्शन में, मैंने इस कोड का उपयोग परम ब्लॉक के सरलीकृत संस्करण के रूप में किया है।

|_+_|

इस खंड में, मैं पर ध्यान केंद्रित करूंगा सीएमडीलेट बाइंडिंग गुण कोड का हिस्सा। यहाँ कैसे परिभाषित करने के लिए है गुण

|_+_|

अगले 3 उप-भागों में, मैं कुछ सामान्य तर्कों पर चर्चा करूंगा, जिन्हें आप परिभाषित कर सकते हैं सीएमडीलेट बाइंडिंग गुण।

संदेह से बचने के लिए, आपको सभी को परिभाषित करना होगा बहस के () ब्लॉक के भीतर गुण . साथ ही, आपको अंतिम को छोड़कर सभी विशेषताओं को अल्पविराम (,) से अलग करना होगा बहस के अंदर गुण .

पावरशेल परम डिफ़ॉल्ट पैरामीटरसेटनाम तर्क

जब आप एक पावरशेल फ़ंक्शन विकसित करते हैं, तो इसमें कई पैरामीटर हो सकते हैं जिनका उपयोग उपयोगकर्ता एक ही कमांड में कर सकता है। इसके अतिरिक्त, समान पावरशेल फ़ंक्शन में पैरामीटर का एक और सेट हो सकता है जिसे उपयोगकर्ता किसी अन्य कमांड में उपयोग कर सकता है।

हालाँकि, उपयोगकर्ता पहले सेट के मापदंडों को दूसरे सेट के मापदंडों के साथ नहीं मिला सकता है।

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

समूहीकृत मापदंडों के अलग-अलग सेट होने का निहितार्थ यह है कि आपके पास अलग-अलग होंगे पैरामीटरसेटनाम एस।

अलग के साथ # अन्य के साथ पैरामीटरसेटनाम आपके परम ब्लॉक में अवहेलना की गई है, आप इनमें से किसी एक को परिभाषित करने का निर्णय ले सकते हैं पैरामीटरसेटनाम s डिफ़ॉल्ट के रूप में। यह वह जगह है जहाँ आप का उपयोग करते हैं डिफ़ॉल्ट पैरामीटरसेटनाम तर्क।

डिफ़ॉल्ट पैरामीटरसेटनाम तर्क के भीतर परिभाषित किया गया है सीएमडीलेट बाइंडिंग विशेषता ब्लॉक। यहाँ एक उदाहरण है…

|_+_|

अंत में, हमारे पावरशेल परम ब्लॉक प्रारूप को बनाए रखने के लिए, मैं नीचे दिए गए परम ब्लॉक को फिर से प्रस्तुत करूंगा…

|_+_|

पावरशेल परम प्रक्रिया का समर्थन करता है तर्क

यह एक और तर्क है जिसे आप इसमें परिभाषित कर सकते हैं सीएमडीलेट बाइंडिंग गुण . की तरह डिफ़ॉल्ट पैरामीटरसेटनाम तर्क, प्रक्रिया का समर्थन करता है तर्क वैकल्पिक है।

प्रक्रिया का समर्थन करता है तर्क जोड़ता है पुष्टि करना तथा क्या हो अगर फ़ंक्शन के सामान्य पैरामीटर

इस तर्क को जोड़ने के लिए, के अंत में एक अल्पविराम (,) जोड़ें डिफ़ॉल्ट पैरामीटरसेटनाम तर्क। फिर, लाइन जोड़ें - प्रक्रिया का समर्थन करता है = $ सच या $ झूठा।

इस नए तर्क के शामिल होने के साथ, सीएमडीलेट बाइंडिंग गुण अब ऐसा दिखेगा...

|_+_|

पावरशेल परम हेल्पुरि तर्क

यदि आप पावरशेल से परिचित हैं मदद लें Cmdlet, हो सकता है कि आप इसके पार आ गए हों ऑनलाइन पैरामीटर। जब आप दौड़ते हैं मदद लें साथ ऑनलाइन पैरामीटर, पावरशेल सीएमडीलेट का ऑनलाइन सहायता पृष्ठ खोलता है।

उदाहरण के लिए, आउट-फाइल Cmdlet का ऑनलाइन सहायता पृष्ठ खोलने के लिए, निम्न कमांड चलाएँ…

|_+_|

इस कमांड द्वारा खोले गए पेज को द्वारा एक फंक्शन में परिभाषित किया जाता है हेल्पुरि तर्क। इसलिए, यदि आप चाहते हैं कि उपयोगकर्ता आपके फ़ंक्शन के ऑनलाइन सहायता पृष्ठ तक पहुंचें, तो परिभाषित करें हेल्पुरि तर्क।

यहाँ एक उदाहरण है…

|_+_|

अब मैं इस अंतिम तर्क को इसमें शामिल करूंगा सीएमडीलेट बाइंडिंग गुण . यहाँ अद्यतन कोड है ...

|_+_|

पावरशेल परम पैरामीटर गुण

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

जैसा कि आपने देखा है, सीएमडीलेट बाइंडिंग विशेषता ब्लॉक परम ब्लॉक के बाहर परिभाषित एकमात्र विशेषता है।

इस उप-अनुभाग में, आप पैरामीटर विशेषता के बारे में जानेंगे। इसके अतिरिक्त, आप उन सामान्य तर्कों के बारे में भी जानेंगे जिन्हें आप इस विशेषता में जोड़ सकते हैं।

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

आप [] ब्लॉक में पैरामीटर शब्द, उसके बाद () ब्रैकेट्स को संलग्न करके पैरामीटर विशेषता को परिभाषित कर सकते हैं। यहाँ एक उदाहरण है…

|_+_|

आगे बढ़ते हुए, आपको () ब्लॉक के भीतर पैरामीटर विशेषता के सभी तर्कों को परिभाषित करना होगा।

पावरशेल परम पैरामीटर विशेषता अनुभाग के निम्नलिखित उप-अनुभागों में, मैं उन सामान्य तर्कों का परिचय और व्याख्या करूंगा जिन्हें आप पैरामीटर विशेषता के भीतर परिभाषित कर सकते हैं।

पावरशेल परम पैरामीटरसेटनाम तर्क

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

उदाहरण के लिए, a . को परिभाषित करने के लिए पैरामीटरसेटनाम बुलाया पैरामीटरसेटनाम1 , पैरामीटर विशेषता () ब्लॉक में नीचे दिया गया कोड दर्ज करें।

|_+_|

जब मैं इस अद्यतन कोड को पेश करता हूं, तो मेरे नमूना कोड का परम ब्लॉक अब इसे देखेगा।

|_+_|

अगर मैं वापस लाता हूँ सीएमडीलेट बाइंडिंग विशेषता, मेरा नमूना पावरशेल परम कोड अब इस तरह दिखेगा ...

|_+_|

पावरशेल परम अनिवार्य तर्क

आप का उपयोग कर सकते हैं अनिवार्य पैरामीटर आवश्यक या वैकल्पिक है या नहीं, यह परिभाषित करने के लिए तर्क। अनिवार्य तर्क एक $true या $false मान स्वीकार करता है - $true का अर्थ है आवश्यकता, $false, आवश्यक नहीं।

इसके अलावा, अनिवार्य तर्क वैकल्पिक है। हालांकि, अगर यह तर्क परिभाषित नहीं है, तो पैरामीटर को वैकल्पिक माना जाएगा।

परिभाषित करने के लिए अनिवार्य तर्क, नीचे दिए गए कोड को पैरामीटर विशेषता ब्लॉक में जोड़ें ...

|_+_|

अंत में, अगर मैं शामिल करता हूं अनिवार्य मेरे पावरशेल परम कोड के लिए तर्क कोड, अब मेरे पास होगा ...

|_+_|

पावरशेल परम पद तर्क

पद पैरामीटर विशेषता का तर्क पैरामीटर की स्थिति को परिभाषित करता है। मान एक पूर्णांक है, जो 0 (शून्य) से शुरू होता है।

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

पावरशेल तब पैरामीटर स्थिति के अनुसार कमांड लाइन में प्रत्येक मान निर्दिष्ट करेगा।

उदाहरण के लिए, गेट-चाइल्डआइटम Cmdlet का एक पैरामीटर है जिसे कहा जाता है पथ (स्थिति 0 के साथ)। Cmdlet का एक अन्य पैरामीटर भी है, फ़िल्टर (स्थिति 1 के साथ)।

डिफ़ॉल्ट रूप से, यदि मैं चलाएँ गेट-चाइल्डआइटम आदेश, मुझे उनके मान जोड़ने से पहले पैरामीटर नाम शामिल करने होंगे। नीचे दिए गए आदेश को देखें…

|_+_|

इस कमांड में, मैंने पैरामीटर्स को कॉल किया और फिर उनके मान निर्दिष्ट किए।

पावरशेल परम स्थिति तर्क

हालांकि, चूंकि मैं इन 2 पैरामीटरों की स्थिति जानता हूं, इसलिए मैं पैरामीटर को स्पष्ट रूप से कॉल किए बिना, उनकी स्थिति में मान जोड़ सकता हूं। फिर मैं अपनी कमांड को संशोधित करूंगा जैसा कि नीचे दिखाया गया है…

|_+_|

जाहिर है, इससे मेरा समय बचता है! हालाँकि, यदि आप एक लंबे पावरशेल कोड को देख रहे हैं, तो इससे कुछ भ्रम हो सकता है।

आदेश PowerShell में समान परिणाम देता है…

पावरशेल स्वचालित रूप से पदों में मानों को उनके आधार पर पैरामीटरों को असाइन करेगा पद तर्क।

आगे बढ़ते हुए, यहां बताया गया है कि आप इसे कैसे परिभाषित करते हैं पद तर्क…

|_+_| इस उदाहरण में, मेरी पैरामीटर स्थिति 0 (शून्य) है। जब मैं अपना अगला पैरामीटर परिभाषित करता हूं, तो यह स्थिति 1 में होगा, और इसी तरह। आपके पास एक ही स्थिति में दो पैरामीटर नहीं हो सकते हैं। बाद में गाइड में, आप सीखेंगे कि एक ही स्थिति में एक पैरामीटर को कैसे जोड़ा जाए, लेकिन विभिन्न ParameterSetNames।

अब मैं इस तर्क को अपने नमूना कोड में जोड़ूंगा…

|_+_|

पावरशेल परम ValueFromPipeline तर्क

एक और आमतौर पर इस्तेमाल किया जाने वाला पैरामीटर संवर्द्धन है ValueFromPipeline तर्क। जैसा कि नाम से ही स्पष्ट है, यह तर्क निर्धारित करता है कि कोई पैरामीटर पाइपलाइन से मान स्वीकार करता है या नहीं।

इस तरह आप इस तर्क को परिभाषित करते हैं ...

|_+_|

अगर मैं इस नए तर्क को अपने कोड में जोड़ता हूं, तो यह इस तरह दिखेगा ...

|_+_|

एक और तर्क है जिसे कहा जाता है ValueFromPipelineByPropertyName . इस तर्क के बारे में पढ़ने के लिए देखें about_Functions_Advanced_Parameters .

पावरशेल परम सहायता संदेश तर्क

आप इस तर्क का उपयोग संदेश को निर्दिष्ट करने के लिए कर सकते हैं ताकि उपयोगकर्ताओं को पैरामीटर का उपयोग करने का तरीका दिखाया जा सके। a . को परिभाषित करना सहायता संदेश एक पैरामीटर के लिए तर्क, नीचे दिए गए कोड के समान कोड का उपयोग करें…

|_+_|

और यहाँ अब मेरा अद्यतन कोड है ...

|_+_|

इस खंड में अब तक, मैंने 2 पावरशेल परम विशेषताओं पर चर्चा की है - सीएमडीलेट बाइंडिंग तथा पैरामीटर . इसके अतिरिक्त, मैंने उन सामान्य तर्कों पर भी चर्चा की जिन्हें आप इन विशेषताओं के लिए परिभाषित कर सकते हैं।

इस खंड के शेष 3 उप-अनुभागों में, मैं आपको 3 और सामान्य रूप से उपयोग की जाने वाली पावरशेल परम विशेषताएँ सिखाऊँगा। हालाँकि, इन 3 विशेषताओं के लिए आपको तर्कों को परिभाषित करने की आवश्यकता नहीं है।

पावरशेल परम उपनाम गुण

उपनाम विशेषता का उपयोग पैरामीटर के उपनाम निर्दिष्ट करने के लिए किया जाता है। जैसा कि आपने अनुमान लगाया होगा, पैरामीटर के बजाय पावरशेल पैरामीटर के उपनाम का उपयोग किया जा सकता है।

इससे पहले कि मैं आपको यह दिखाऊं कि किसी पैरामीटर के लिए उपनाम विशेषता को कैसे परिभाषित किया जाए, आइए पहले मैं आपको दिखाता हूं कि अपने कंप्यूटर पर सभी Cmdlets, और फ़ंक्शन के उपनाम कैसे खोजें।

Cmdlets और Functions के सभी उपनामों को सूचीबद्ध करने के लिए, नीचे कमांड चलाएँ

|_+_|

यह सभी उपनामों को सूचीबद्ध करेगा…

पावरशेल परम उपनाम विशेषता

आगे बढ़ जाना उपनाम विशेषता, पावरशेल परम पैरामीटर के लिए एक को परिभाषित करने के लिए, नीचे दिए गए कोड के समान कोड का उपयोग करें…

|_+_| इस उदाहरण में, एफपी पैरामीटर के लिए उपनाम है।

अगर मैं इसे अपने कोड में जोड़ता हूं, तो अद्यतन संस्करण इस तरह दिखेगा ...

|_+_|

पावरशेल परम वाइल्डकार्ड का समर्थन करता है गुण

यह पैरामीटर परम विशेषता निर्धारित करती है कि कोई पैरामीटर वाइल्डकार्ड स्वीकार करता है या नहीं। यहां बताया गया है कि आप इस विशेषता को कैसे परिभाषित करते हैं…

|_+_|

पावरशेल परम ValidateNotNullOrEmpty सत्यापन विशेषता

इस गाइड में पहले से शामिल अधिकांश विशेषताओं की तरह, इस विशेषता का नाम भी इसे दूर करता है। यह एक सत्यापन विशेषता है।

जब आप इस विशेषता को परिभाषित करते हैं, तो पैरामीटर शून्य ($null) मान को स्वीकार नहीं करेगा। साथ ही, यह एक खाली () मान को स्वीकार नहीं करेगा।

यदि कोई उपयोगकर्ता $null में प्रवेश करता है, या फ़ंक्शन एक त्रुटि फेंक देगा। इस विशेषता को परिभाषित करने के लिए, नीचे दिया गया कोड दर्ज करें…

|_+_|

अंत में, मैं अपने कोड को अंतिम 2 विशेषताओं के साथ अपडेट करूंगा ...

|_+_|

पावरशेल परम पैरामीटर नाम

किसी पैरामीटर की सभी विशेषताओं और तर्कों को परिभाषित करने के बाद, आपको पैरामीटर नाम जोड़ना होगा। एक पॉवरशेल परम पैरामीटर को एक वैरिएबल की तरह परिभाषित किया जाता है - एक डॉलर चिह्न ($) के साथ, उसके बाद पैरामीटर का नाम।

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

यहां बताया गया है कि आप एक ऐसे पैरामीटर को कैसे परिभाषित करते हैं जो स्वीकार कर सकता है डोरी डाटा प्रकार।

|_+_|

मेरा अद्यतन कोड उदाहरण यहां दिया गया है ...

|_+_|

एकाधिक पैरामीटर सेट में एक पावरशेल पैरामीटर को कैसे परिभाषित करें

एकाधिक पैरामीटर सेट में एक पावरशेल पैरामीटर को कैसे परिभाषित करें

यदि आप पावरशेल फ़ंक्शंस को कोड करने के लिए नए हैं, तो संभावना है कि आप एक पैरामीटर को कई बार परिभाषित करने के प्रलोभन में पड़ जाएंगे।

एक कारण है कि आप कई बार एक पैरामीटर रखना चाहते हैं, जब एक पैरामीटर का उपयोग कई पैरामीटरसेटनाम (एकाधिक पैरामीटर सेट) में किया जाता है।

इस घर को चलाने के लिए, मान लें कि आप एक पॉवरशेल फ़ंक्शन विकसित कर रहे हैं जिसमें a पथ पैरामीटर। हालाँकि, आपके पास 2 ParameterSetNames हैं जिन्हें Path पैरामीटर की आवश्यकता है।

पावरशेल स्क्रिप्टिंग के लिए नए अधिकांश लोग संभावित रूप से नीचे दिखाए गए पैरामीटर को परिभाषित करेंगे ...

|_+_|

यदि आप ऊपर दिखाए गए मापदंडों को परिभाषित करते हैं, तो आपको एक त्रुटि संदेश प्राप्त होगा। इस सिद्धांत का परीक्षण करने के लिए, मैं कोड को PowerShell ISE में कॉपी करूंगा।

एकाधिक पैरामीटर सेट में एक पावरशेल पैरामीटर को कैसे परिभाषित करें

तो, आप इसे कैसे ठीक करते हैं? समाधान 2 पैरामीटर विशेषताओं और उनके तर्कों को परिभाषित करना है - उनके ParameterSetNames सहित।

फिर, दोनों पैरामीटर विशेषताओं के अंत में, एक एकल पैरामीटर नाम परिभाषित करें जो दोनों पैरामीटर विशेषताओं के लिए सामान्य है। पिछले उदाहरण में, मैं पहले पैरामीटर नाम को हटा दूंगा और अंतिम को छोड़ दूंगा।

|_+_|

अब अगर मैं इस कोड को पावरशेल आईएसई में कॉपी करता हूं, तो यह ठीक रहेगा।

इस उदाहरण में, ध्यान दें कि दोनों पैरामीटर विशेषताओं के लिए पैरामीटर तर्क पूरी तरह से भिन्न हो सकते हैं। इसके अतिरिक्त, आप जितने चाहें उतने पैरामीटर विशेषताओं को परिभाषित कर सकते हैं।

पावरशेल परम उदाहरण

पावरशेल परम उदाहरण

मार्गदर्शिका के इस अंतिम भाग में, मैं एक वास्तविक जीवन SysAdmin PowerShell परम उदाहरण दूंगा।

जब मैं इस गाइड को लिख रहा था तो मैंने फ़ोल्डर आकार और फ़ाइल गिनती प्राप्त करने के लिए पावरशेल स्क्रिप्ट/फ़ंक्शन विकसित करना शुरू कर दिया। यहाँ समारोह का परम भाग है…

|_+_|

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

आपके लिए अगले उप-अनुभागों में संदर्भित कोड की पंक्तियों का अनुसरण करना आसान बनाने के लिए, PowerShellParamExample.zip डाउनलोड करें। फिर, फ़ाइल को अनज़िप करें और PowerShell ISE में .ps1 फ़ाइल खोलें।

पैरामीटरसेटनाम पावरशेल परम उदाहरण

मेरे पावरशेल परम उदाहरण कोड में तीन पैरामीटरसेटनाम हैं - प्रदर्शन परिणाम , निर्यात टेक्स्ट तथा निर्यातसीएसवी . मैंने इन नामों का उपयोग यह पहचानने में आसान बनाने के लिए किया कि वे क्या करते हैं।

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

इसलिए, तीन ParameterSetNames उपयोगकर्ता को PowerShell कंसोल पर परिणाम प्रदर्शित करने का विकल्प प्रदान करते हैं। वैकल्पिक रूप से, उपयोगकर्ता के पास परिणाम को टेक्स्ट फ़ाइल या CSV फ़ाइल में निर्यात करने का विकल्प होता है।

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

मैं इस विचार पर बाद के उपखंडों और उदाहरणों में विस्तार करूंगा।

सीएमडीलेट बाइंडिंग विशेषता And डिफ़ॉल्ट पैरामीटरसेटनाम तर्क उदाहरण

इस गाइड के पिछले अनुभागों में, आपने देखा था सीएमडीलेट बाइंडिंग गुण। इसके अलावा, आपको इसका एक तर्क भी मिला - डिफ़ॉल्ट पैरामीटरसेटनाम .

डिफ़ॉल्ट पैरामीटरसेटनाम तर्क का उपयोग डिफ़ॉल्ट पैरामीटर सेट को परिभाषित करने के लिए किया जाता है जिसे फ़ंक्शन कॉल करता है। इस उदाहरण में, डिफ़ॉल्ट पैरामीटर सेट नाम है प्रदर्शन परिणाम .

डिफ़ॉल्ट पैरामीटरसेटनाम कोड की लाइन 1 में घोषित किया गया है।

पावरशेल द्वारा घोषित पैरामीटर सेट का उपयोग करने का प्रयास करेगा डिफ़ॉल्ट पैरामीटरसेटनाम यदि यह निर्धारित नहीं कर सकता है कि किस पैरामीटर का उपयोग करना है। हालाँकि, यदि आप अनिवार्य पैरामीटर सेट करते हैं, तो आप इस समस्या से बच सकते हैं।

किसी भी मामले में, डिफ़ॉल्ट पैरामीटर सेट नाम घोषित करने में कोई हानि नहीं है।

फ़ोल्डर की जगह स्ट्रिंग पैरामीटर उदाहरण

मज़ा यहां शुरू होता है! फ़ोल्डर की जगह पैरामीटर का उपयोग फ़ोल्डर पथ को इनपुट करने के लिए किया जाता है, फ़ंक्शन को इसके उप-फ़ोल्डरों का आकार मिलेगा - और प्रत्येक उप-फ़ोल्डर में फ़ाइलों की संख्या की गणना करें।

यह एक स्ट्रिंग पैरामीटर है। यानी यह किसी भी स्ट्रिंग को इनपुट के रूप में स्वीकार करता है।

की एक रोमांचक विशेषता फ़ोल्डर की जगह पैरामीटर यह है कि यह 3 पैरामीटर सेट नामों के लिए सामान्य है। इससे पहले इस लेख में, मैंने इस चुनौती के बारे में बताया था कि नए पावरशेल स्क्रिप्ट डेवलपर्स को इस स्थिति का सामना करना पड़ सकता है।

घोषित करने के लिए फ़ोल्डर की जगह तीन पैरामीटर सेट नामों में पैरामीटर, मैंने तीन पैरामीटर विशेषताएँ बनाईं।

पहला पैरामीटर विशेषता 5 और 11 पंक्तियों के बीच है। इसके अतिरिक्त, इस पहले पैरामीटर विशेषता में कई तर्क हैं।

हालांकि, मैं चाहूंगा कि आप इस पर विशेष ध्यान दें पैरामीटरसेटनाम तर्क - प्रदर्शन परिणाम .

FolderPath स्ट्रिंग पैरामीटर उदाहरण

दूसरे, 12 और 18 की पंक्तियों के बीच, मैंने a . के साथ एक और पैरामीटर विशेषता घोषित की पैरामीटरसेटनाम तर्क कहा जाता है निर्यात टेक्स्ट .

अंत में, 19 और 25 की पंक्तियों के बीच, मैंने a . के साथ एक तीसरा पैरामीटर विशेषता घोषित किया पैरामीटरसेटनाम तर्क कहा जाता है निर्यातसीएसवी .

FolderPath स्ट्रिंग पैरामीटर उदाहरण

इसके अलावा, यदि आप देखते हैं, 3 पैरामीटर विशेषताओं को घोषित करने के विपरीत, मैंने एकल घोषित किया है उपनाम , तथा ValidateNotNullOrEmpty गुण। ये विशेषताएँ 26 और 27 पंक्तियों में पाई जा सकती हैं।

FolderPath स्ट्रिंग पैरामीटर उदाहरण

अंत में, सभी विशेषताओं और उनके तर्कों के ठीक नीचे, मैंने पैरामीटर का नाम शामिल किया - फ़ोल्डर की जगह . पैरामीटर नाम लाइन 28 में है।

FolderPath स्ट्रिंग पैरामीटर उदाहरणइस खंड के अंतिम उपखंड में, आप देखेंगे कि फ़ंक्शन इस पैरामीटर को 3 कमांड सिंटैक्स में कैसे प्रदर्शित करता है।

प्रदर्शन परिणाम , निर्यात टेक्स्ट और निर्यातसीएसवी स्विच पैरामीटर उदाहरण

परम कोड की पंक्ति 29 से, मैंने पैरामीटर विशेषताओं और उनके तर्कों का एक और सेट घोषित किया।

सबसे पहले, 29 और 37 की पंक्तियों के बीच, मैं पैरामीटर विशेषताओं और तर्कों की घोषणा करता हूं प्रदर्शन परिणाम पैरामीटर।

फिर, लाइन 38 और 47 के बीच, मैं एक और पैरामीटर घोषित करता हूं जिसे कहा जाता है निर्यात टेक्स्ट .

DisplayResult, ExportTxt और ExportCSV स्विच पैरामीटर उदाहरण:

अंत में, पंक्तियों 48 और 57 के बीच, मैंने घोषणा की निर्यातसीएसवी पैरामीटर।

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

जब कोई उपयोगकर्ता किसी भी पैरामीटर का चयन करता है, तो फ़ंक्शन परिणाम प्रदर्शित करने के तरीके को बदल देता है।

पावरशेल फ़ंक्शन में पावरशेल परम का उपयोग कैसे करें

इस उप-अनुभाग में, मैं अपने उदाहरण कोड में पावरशेल फ़ंक्शन ब्लॉक को पेश करना चाहता हूं।

पावरशेल फ़ंक्शन ब्लॉक का सिंटैक्स है…

|_+_|

इस गाइड में अंतिम उदाहरण के लिए, मैं पिछले उप-अनुभाग से अपने परम कोड के साथ फ़ंक्शन के सिंटैक्स के भीतर पावरशेल परम ब्लॉक को बदल दूंगा। इसके अतिरिक्त, मैं फ़ंक्शन को इसके साथ बदल दूंगा Get-FolderSizeFileCount , समारोह का नाम।

फाइनल फंक्शन अब इस तरह दिखेगा...

|_+_| इस उदाहरण के लिए, शुरुआत {}, प्रक्रिया {}, और अंत {} ब्लॉक खाली हैं।

पावरशेल फ़ंक्शन में मेरे पावरशेल पैरामीटर का परीक्षण करना

इस अंतिम खंड में, मैं पिछले खंड में बनाए गए फ़ंक्शन में पैरामीटर का परीक्षण करूंगा।

यदि आप स्वयं इसका परीक्षण करना चाहते हैं, तो आप इस लिंक - Get-FolderSizeFileCount.zip पर क्लिक करके कोड डाउनलोड कर सकते हैं। फिर, ज़िप फ़ाइल को अनज़िप करें।

एक बार जब आप फ़ाइल को अनज़िप कर लेते हैं, तो पावरशेल खोलें और नीचे कमांड चलाएँ:

|_+_| अनज़िप्ड फ़ाइल के पूर्ण पथ में बदलें।

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

पावरशेल फ़ंक्शन में मेरे पावरशेल पैरामीटर का परीक्षण करना

एक बार मॉड्यूल आयात हो जाने के बाद, उसी पावरशेल कंसोल पर, नीचे दी गई कमांड चलाएँ:

|_+_|

यहाँ आदेश का परिणाम है ...

मैं आपको जो दिखाना चाहता हूं वह मेरे फ़ंक्शन के सहायता पृष्ठ का SYNTAX अनुभाग है। ऊपर दिए गए स्क्रीनशॉट से, आप Get-FolderSizeFileCount कमांड को 3 अलग-अलग कमांड में चला सकते हैं:

|_+_|

ध्यान देने वाली पहली बात यह है कि तीन सिंटैक्स में फ़ोल्डर की जगह स्ट्रिंग पैरामीटर। यदि आप इस गाइड को पढ़ते हैं, तो आपको पता चल जाएगा कि ऐसा क्यों है।

इसके अतिरिक्त, आप देखेंगे कि पहले सिंटैक्स में है प्रदर्शन परिणाम पैरामीटर भी स्विच करें। अंत में, दूसरे और तीसरे सिंटैक्स में, आपके पास है निर्यातसीएसवी , तथा निर्यात टेक्स्ट क्रमशः पैरामीटर स्विच करें।

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

यही है - पावरशेल परम के बारे में एक व्यापक गाइड! मुझे आशा है कि आपको यह मददगार लगा?

अगर आपको यह मददगार लगा, तो कृपया वोट करें हां के लिए क्या यह पोस्ट नीचे उपयोगी प्रश्न था।

वैकल्पिक रूप से, आप एक प्रश्न पूछ सकते हैं, एक टिप्पणी छोड़ सकते हैं या इस पृष्ठ के अंत में एक उत्तर दें फ़ॉर्म के साथ अधिक प्रतिक्रिया प्रदान कर सकते हैं।

अंत में, अधिक पावरशेल टेक एस जोन के लिए, हमारे विंडोज पावरशेल हाउ-टू गाइड पेज पर जाएं। आपको हमारा वर्क फ्रॉम होम पेज भी बहुत मददगार लग सकता है।

संदर्भ और आगे पढ़ना

  1. पावरशेल डेटा प्रकारों को कैसे परिभाषित करें
  2. about_Functions_Advanced_Parameters
  3. about_Functions_CmdletBindingAttribute