PowerShell में स्वचालित चर क्या हैं?

Powershell Mem Svacalita Cara Kya Haim



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

इस लेख का उद्देश्य पावरशेल में 'स्वचालित चर' की अवधारणा, उनके महत्व और विभिन्न परिदृश्यों में उनका लाभ कैसे उठाया जा सकता है, इसका पता लगाना है।







PowerShell में स्वचालित चर क्या हैं?

आरंभ करने के लिए, आइए 'की परिभाषा पर ध्यान दें' स्वचालित चर ”। ये वेरिएबल पूर्वनिर्धारित हैं और स्क्रिप्ट निष्पादन के दौरान PowerShell द्वारा स्वचालित रूप से बनाए जाते हैं। ये विभिन्न उद्देश्यों की पूर्ति करते हैं, जिनमें सिस्टम के बारे में जानकारी, कमांड-लाइन तर्क, स्क्रिप्ट-संबंधित विवरण और बहुत कुछ शामिल है।



पॉवरशेल कई 'स्वचालित चर' प्रदान करता है और उनमें से प्रत्येक स्क्रिप्ट निष्पादन में एक अलग उद्देश्य प्रदान करता है। ये चर इस प्रकार हैं:



1. $PSVersionTable

PowerShell में मूलभूत स्वचालित चरों में से एक है ' $पीएसवर्जनटेबल ”। यह वेरिएबल स्क्रिप्ट डेवलपर्स को उपयोग किए जा रहे पावरशेल के संस्करण का पता लगाने की अनुमति देता है, जो कुछ सुविधाओं और कार्यात्मकताओं की अनुकूलता और उपलब्धता पर विचार करते समय महत्वपूर्ण हो सकता है।





इस वेरिएबल के साथ निम्नलिखित गुण जुड़े हुए हैं:

PSसंस्करण: पॉवरशेल संस्करण संख्या लौटाता है।



PSसंस्करण: PowerShell 4 और इससे पहले के संस्करणों के साथ-साथ पूर्ण विशेषताओं वाले Windows संस्करणों पर PowerShell 5.1 के लिए, इस संपत्ति का मान 'डेस्कटॉप' है। इस विशेषता में PowerShell 6 और बाद के संस्करण के लिए Core का मान है, साथ ही Windows नैनो सर्वर या Windows IoT जैसे कम-फ़ुटप्रिंट संस्करणों के लिए Windows PowerShell 5.1 का मान है।

GitCommitId: स्रोत फ़ाइलों की GitHub कमिट आईडी प्राप्त करता है।

आप: PowerShell द्वारा उपयोग किए जा रहे कंप्यूटर सिस्टम के बारे में जानकारी लॉग करता है।

प्लैटफ़ॉर्म: ऑपरेटिंग सिस्टम का सहायक प्लेटफ़ॉर्म लौटाता है। लिनक्स और मैकओएस पर यूनिक्स का मूल्य है। $IsMacOs और $IsLinux देखें।

PSसंगत संस्करण: PowerShell संस्करण जो वर्तमान संस्करण के साथ संगत हैं, लौटा दिए जाते हैं।

PSRemotingProtocolसंस्करण: PowerShell दूरस्थ प्रबंधन प्रोटोकॉल के लिए संस्करण संख्या लौटाता है।

क्रमांकनसंस्करण: क्रमांकन विधि का संस्करण लौटाता है।

WSManStackसंस्करण: WS-प्रबंधन स्टैक का संस्करण क्रमांक लौटाता है।

$ PSसंस्करण तालिका

2. $आर्ग्स

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

किसी फ़ंक्शन को परिभाषित करते समय, आप या तो पैरामीटर घोषित करने के लिए 'परम' कीवर्ड का उपयोग कर सकते हैं या आप फ़ंक्शन नाम के बाद कोष्ठक में पैरामीटर की अल्पविराम से अलग सूची जोड़ सकते हैं। एक ईवेंट एक्शन का '$Args' वैरिएबल उन ऑब्जेक्ट्स को संग्रहीत करता है जो संभाले जा रहे ईवेंट के ईवेंट पैरामीटर के लिए प्लेसहोल्डर के रूप में कार्य करते हैं:

प्रत्येक के लिए ( $arg में $आर्ग्स ) {
राइट-होस्ट $arg
}

3. $मेराआमंत्रण

$मेराआमंत्रण 'वेरिएबल वर्तमान में चल रही स्क्रिप्ट या प्रक्रिया के बारे में महत्वपूर्ण पृष्ठभूमि डेटा देता है। यह स्क्रिप्ट का नाम, स्क्रिप्ट लाइन नंबर, और क्या स्क्रिप्ट इंटरैक्टिव या गैर-इंटरैक्टिव रूप से चल रही है जैसे गुण प्रदान करता है। ये गुण स्क्रिप्ट डेवलपर्स को ब्रांचिंग लॉजिक लागू करने, त्रुटि-हैंडलिंग तंत्र को परिभाषित करने, या सार्थक लॉगिंग और रिपोर्टिंग उत्पन्न करने में मदद करते हैं:

$ मेराआह्वान

4. $त्रुटि

एक कम-ज्ञात स्वचालित चर ' $त्रुटि ”, स्क्रिप्ट निष्पादन के दौरान होने वाले किसी भी त्रुटि संदेश या अपवाद को प्रभावी ढंग से पकड़ लेता है। विस्तृत विश्लेषण और डिबगिंग को सक्षम करने के लिए अपवाद संदेश, स्टैक ट्रेस या त्रुटि कोड जैसे विशिष्ट त्रुटि विवरण पुनर्प्राप्त करने के लिए '$Error' तक पहुंचा जा सकता है।

सबसे हालिया त्रुटि को सरणी में पहली त्रुटि ऑब्जेक्ट द्वारा दर्शाया गया है ' $त्रुटि[0] “. त्रुटियों को '$Error' सरणी में जोड़े जाने से रोकने के लिए आप 'अनदेखा करें' मान के साथ ErrorAction सामान्य विकल्प का उपयोग कर सकते हैं।

मान लीजिए हमने एक सटीक कमांड टाइप किया है:

आई पी [ ऑनफ़िग

अब, यदि हम '$त्रुटि' cmdlet दर्ज करते हैं:

$ गलती

5. $पीएससीएमडीलेट

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

'$PSCmdlet' का उपयोग करके, उन्नत स्क्रिप्ट डेवलपर्स अंतर्निहित कार्यक्षमताओं को विस्तारित या संशोधित करके मॉड्यूल के व्यवहार को ठीक कर सकते हैं और बढ़ा सकते हैं। आप उपयोग के मानदंडों के जवाब में अपने सीएमडीलेट या फ़ंक्शन कोड में ऑब्जेक्ट की विशेषताओं और विधियों का उपयोग कर सकते हैं:

समारोह typeof-psCmdlet {
[ cmdletबाइंडिंग ( ) ] परम ( )
गूंज 'का प्रकार ` $psCmdlet है $($psCmdlet.GetType() ।पूरा नाम)'
}

typeof-psCmdlet

उपर्युक्त वेरिएबल्स के अलावा, पावरशेल में $HOME, $PROFILE, $PWD और कई अन्य स्वचालित वेरिएबल शामिल हैं, जो विभिन्न उद्देश्यों को पूरा करते हैं, जैसे इनपुट तक पहुंच, त्रुटियों को ट्रैक करना, पर्यावरण की जानकारी प्राप्त करना, मापदंडों को प्रबंधित करना और बहुत कुछ। ये चर नीचे सूचीबद्ध हैं:

स्वचालित चर विवरण
$$ PowerShell सत्र द्वारा प्राप्त पिछली पंक्ति में अंतिम टोकन रखता है।
$? अंतिम कमांड की निष्पादन स्थिति को संग्रहीत करता है।
$^ सत्र द्वारा प्राप्त अंतिम पंक्ति का पहला टोकन शामिल है।
$_ पाइपलाइन में वर्तमान ऑब्जेक्ट का प्रतिनिधित्व करता है।
$ConsoleFileName इसमें हाल ही में सत्र में उपयोग की गई कंसोल फ़ाइल (.psc1) का पथ शामिल है।
$सक्षमप्रायोगिकविशेषताएँ सक्षम प्रयोगात्मक सुविधाओं की एक सूची शामिल है।
$घटना इसमें संसाधित होने वाली घटना का प्रतिनिधित्व करने वाला एक 'PSEventArgs' ऑब्जेक्ट शामिल है।
$इवेंटआर्ग्स संसाधित होने वाले ईवेंट का पहला ईवेंट तर्क शामिल है।
$इवेंटसब्सक्राइबर संसाधित किए जा रहे ईवेंट के ईवेंट सब्सक्राइबर का प्रतिनिधित्व करता है।
$ExecutionContext PowerShell होस्ट के निष्पादन संदर्भ का प्रतिनिधित्व करता है।
$झूठा बूलियन मान 'गलत' का प्रतिनिधित्व करता है।
$foreach इसमें 'प्रत्येक के लिए' लूप का गणनाकर्ता शामिल है।
$घर इसमें उपयोगकर्ता की होम निर्देशिका का पूरा पथ शामिल है।
$मेज़बान PowerShell के लिए वर्तमान होस्ट एप्लिकेशन का प्रतिनिधित्व करता है।
$इनपुट किसी फ़ंक्शन या स्क्रिप्ट को दिए गए सभी इनपुट के लिए एक गणक के रूप में कार्य करता है।
$IsCoreCLR इंगित करता है कि सत्र .NET कोर रनटाइम (CoreCLR) पर चल रहा है या नहीं।
$ IsLinux इंगित करता है कि सत्र लिनक्स ऑपरेटिंग सिस्टम पर चल रहा है या नहीं।
$IsMacOS इंगित करता है कि सत्र MacOS ऑपरेटिंग सिस्टम पर चल रहा है या नहीं।
$विंडोज है यह पहचानता है कि सत्र विंडोज़ ऑपरेटिंग सिस्टम पर चल रहा है या नहीं।
$LASTEXITCODE अंतिम मूल प्रोग्राम या पॉवरशेल स्क्रिप्ट के निकास कोड को संग्रहीत करता है।
$माचिस इसमें '-मैच' और '-नॉटमैच' ऑपरेटरों से मिलान किए गए स्ट्रिंग शामिल हैं।
$नेस्टेडप्रॉम्प्टलेवल नेस्टेड कमांड या डिबगिंग परिदृश्यों में वर्तमान प्रॉम्प्ट स्तर को ट्रैक करता है।
$शून्य शून्य या रिक्त मान का प्रतिनिधित्व करता है.
$पीआईडी इसमें PowerShell सत्र की प्रक्रिया पहचानकर्ता (PID) शामिल है।
$प्रोफ़ाइल वर्तमान उपयोगकर्ता और होस्ट एप्लिकेशन के लिए PowerShell प्रोफ़ाइल का पूरा पथ शामिल है।
$PSBoundParameters किसी स्क्रिप्ट या फ़ंक्शन को दिए गए पैरामीटर और उनके मानों का एक शब्दकोश रखता है।
$PSCommandPath निष्पादित की जा रही स्क्रिप्ट का पूरा पथ और फ़ाइल नाम शामिल है।
$पीएससंस्कृति वर्तमान पॉवरशेल रन स्पेस की संस्कृति को दर्शाता है।
$PSEdition इसमें पॉवरशेल संस्करण की जानकारी शामिल है।
$PSHOME PowerShell स्थापना निर्देशिका का पूरा पथ शामिल है।
$PSItem $_ के समान, पाइपलाइन में वर्तमान ऑब्जेक्ट का प्रतिनिधित्व करता है।
$पीएसस्क्रिप्टरूट निष्पादन स्क्रिप्ट की मूल निर्देशिका का पूरा पथ शामिल है।
$PSSenderInfo इसमें PSSession शुरू करने वाले उपयोगकर्ता के बारे में जानकारी शामिल है।
$पीएसयूआईसील्चर ऑपरेटिंग सिस्टम में कॉन्फ़िगर किए गए यूजर इंटरफ़ेस (यूआई) संस्कृति को दर्शाता है।
$पीडब्ल्यूडी PowerShell सत्र की वर्तमान कार्यशील निर्देशिका का प्रतिनिधित्व करता है।
$प्रेषक इसमें वह ऑब्जेक्ट शामिल है जिसने एक ईवेंट उत्पन्न किया।
$शेलआईडी वर्तमान शेल का पहचानकर्ता शामिल है।
$स्टैकट्रेस नवीनतम त्रुटि के लिए स्टैक ट्रेस संग्रहीत करता है।
$स्विच 'स्विच' कथन का प्रगणक शामिल है।
$यह स्क्रिप्ट ब्लॉक में एक वर्ग के उदाहरण को संदर्भित करता है जो कक्षाओं का विस्तार करता है।
$सच बूलियन मान 'सत्य' का प्रतिनिधित्व करता है।

PowerShell में सभी 'स्वचालित चर' नीचे दिए गए आदेश को चलाकर पाए जा सकते हैं:

गेट-वेरिएबल

निष्कर्ष

स्वचालित चर ” पावरशेल स्क्रिप्टिंग की रीढ़ की हड्डी बनाएं, जिससे डेवलपर्स को सिस्टम, कमांड-लाइन तर्क, स्क्रिप्ट निष्पादन संदर्भ और बहुत कुछ के बारे में जानकारी प्राप्त करने की अनुमति मिलती है। '$PSVersionTable', '$Args', '$MyInvocation', '$Error', और अन्य जैसे स्वचालित चर का उपयोग करके, PowerShell स्क्रिप्ट डेवलपर्स सुव्यवस्थित सिस्टम प्रशासन प्रथाओं का निर्माण कर सकते हैं।