मेरे पास एकाधिक कार्यों के साथ एक मॉड्यूल है।मॉड्यूल मैनिफेस्ट के साथ PowerShell मॉड्यूल उपनाम निर्यात करने के लिए कैसे?
चूंकि मैंने उन्हें एक पावरशेल-मार्ग में नामित किया है, इसलिए मैं उनका नाम बदलना चाहता हूं। लेकिन जैसा कि मॉड्यूल पहले से उपयोग में है, मैं पुराने फ़ंक्शन नाम रखना चाहता हूं।
इसे प्राप्त करने का सबसे अच्छा तरीका उपनाम का उपयोग करना प्रतीत होता है।
AliasesToExport = '*'
तो मैं New-Alias -Name test -Value oldFunctionName
साथ मॉड्यूल में एक उपनाम बनाया: मैं पहले से ही एक मॉड्यूल प्रकट जिसमें कहा गया है।
फ़ंक्शन सामान्य रूप से आयात किए गए थे, लेकिन उपनाम वहां नहीं था।
मुझे पता है कि मैं मॉड्यूल में निर्यात-मॉड्यूलमेम्बर का उपयोग कर सकता हूं। लेकिन मेरे पास एक मैनिफेस्ट है जो पहले से ही इसका ख्याल रखना चाहिए।
क्यों उपनाम प्रकट माध्यम से निर्यात नहीं कर रहे हैं:
तो यहाँ अंत में मेरे सवालों का कर रहे हैं?
क्या फ़ंक्शन में कोई विशेष स्थान है, जहां मैं उपनाम को परिभाषित कर सकता हूं या परिभाषित कर सकता हूं? या क्या मुझे नई-एलियास cmdlet कहीं विशेष का उपयोग करना है?
मैं पैरामीटर उपनाम की तरह कुछ के बारे में सोच रहा था:
[parameter(Mandatory=$true, Position=0)][Alias("name","path")][String]$filename
लेकिन कार्यों के लिए बजाय।
कृपया मॉड्यूल के लिए ग्लोबल्स घोषित न करें। :) – JasonMArcher
यह मूल रूप से उत्तर है, और इसे "हां" से शुरू करना चाहिए। इसके अलावा, आपको शायद स्कोप पैरामीटर की आवश्यकता नहीं होगी। ग्लोबल्स पर टिप्पणी एक व्याकुलता है: मेरे सिस्टम पर, ''आयात-मॉड्यूल'' वैश्विक पर डिफ़ॉल्ट है, और यदि आप इसे स्थानीय पर सेट करते हैं, तो ''न्यू-एलियास -स्कोप ग्लोबल' 'इसे कूद नहीं देता है जैसा कि इस जवाब में sidenote में दर्शाया गया है। साथ ही, मूल प्रश्न यह है कि 'आयात-मॉड्यूल'' के बाद मौजूदा दायरे में क्या रखा गया है, इसलिए वैश्विक प्रदूषित न करें, लेकिन समझें कि यह यहां अप्रासंगिक है। –