जब आप किसी फ़ंक्शन में हों तो आप स्वचालित चर $ PSCmdLet तक पहुंच सकते हैं।
यह एक बेहद उपयोगी चर है जो वर्तमान में निष्पादित cmdlet के बारे में बहुत सारी जानकारी रखता है।
हमारे परिदृश्य में हम कुछ रिकर्सन के लिए वर्तमान फ़ंक्शन का नाम और परिभाषा चाहते थे। $ MyInvocation शून्य था क्योंकि फ़ंक्शन PowerShell मॉड्यूल के भीतर था।
हालांकि, PSCmdLet ऑब्जेक्ट पर "MyInvocation" संपत्ति है जिसमें सभी आवश्यक जानकारी शामिल है और हमारे परिदृश्य को चलाने की अनुमति है।
उदा। धन्यवाद किसी भी विचार कैसे बुला समारोह नाम पाने के लिए - $ PSCmdlet.MyInvocation.MyCommand.Name = समारोह $ PSCmdlet.MyInvocation.MyCommand.Definition के नाम समारोह
काम करता है कि की परिभाषा =? मैंने अन्य $ myInvocation गुणों की कोशिश की लेकिन मुझे एक नहीं दिख रहा है। फ़ंक्शन foo {'इस फ़ंक्शन को {0} कहा जाता है।' -फ $ MyInvocation.MyCommand 'इस कॉलर को {0} कहा जाता है।' -फ $ MyInvocation।? } फ़ंक्शन CallFoo {foo} कॉलफू – alphadev
यदि आप पावरशेल 2.0 पर हैं '(Get-PSCallStack) [1]। Comand'। –
इसे एक अलग प्रश्न बनाएं, ताकि लोग इसे ढूंढ सकें। V1 में उत्तर 'gv -sc $ _ myinvocation' में है। Http://jtruher.spaces.live.com/blog/cns!7143DA6E51A2628D!172.entry –