पावरशेल एरेज़: उन्हें कैसे बनाएं और उपयोग करें

वेरिएबल किसी भी प्रकार की कोडिंग(any type of coding) में सबसे बुनियादी डेटा संरचना है । लेकिन अधिकांश उद्देश्यों के लिए एकल चर शायद ही पर्याप्त होते हैं, खासकर जब अधिक जटिल एल्गोरिदम से निपटते हैं।

यहीं से सरणियाँ आती हैं। सी ++ या पायथन(Python) हो , सरणियाँ हर प्रोग्रामिंग भाषा में किसी न किसी रूप में मौजूद होती हैं। लेकिन विंडोज पॉवरशेल(Windows PowerShell) के बारे में क्या ? पावरशेल(PowerShell) सरणियाँ कैसे काम करती हैं? आप उनका कैसे उपयोग करते हैं? उनका सिंटैक्स क्या है? चलो पता करते हैं।

पावरशेल एरेज़ 101

सीधे शब्दों(Simply) में कहें, एक सरणी चर का सिर्फ एक संरचित संग्रह है। विचार संबंधित चरों को एक क्रमांकित सेट में संक्षिप्त करके दर्जनों नामों का ट्रैक रखने की परेशानी को खत्म करना है।

पावरशेल(PowerShell) में , आप $ प्रतीक को एक चर नाम से जोड़कर एक चर बना सकते हैं। उदाहरण के लिए:

$prime = 13

चर में संख्याओं से लेकर स्ट्रिंग तक कोई भी डेटा प्रकार हो सकता है। स्ट्रिंग निर्दिष्ट करने के लिए आपको केवल डबल या सिंगल कोट्स का उपयोग करने की आवश्यकता है।

$name = “Levin”

अब एक नया एरे बनाने के लिए, कॉमा द्वारा अलग किए गए, एक ही वेरिएबल के लिए कई मान असाइन करें। ऐशे ही:

$week = “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”

कुछ लोग भ्रम से बचने के लिए स्पष्ट रूप से एक चर को एक सरणी में डालना पसंद करते हैं, हालांकि यह आवश्यक नहीं है। ऐसा करने के लिए, मानों को @ प्रतीक के साथ कोष्ठक में रखें।

$week = @(“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”)

यह आमतौर पर तब काम आता है जब अन्य कमांड के आउटपुट को एक सरणी में डालने की कोशिश की जाती है, जहाँ आप उन्हें सही प्रारूप में मैन्युअल रूप से नहीं लिख सकते हैं।

एक ऐरे बनाना

हम पहले ही एक सरणी बनाने की सबसे सामान्य विधि देख चुके हैं। लेकिन स्थिति के आधार पर, ऐसे अन्य तरीके हैं जो अधिक उपयुक्त हो सकते हैं। उदाहरण के लिए, यदि आप एक ऐसा सरणी बनाना चाहते हैं जिसमें संख्याओं की श्रेणी हो, तो आप श्रेणी ऑपरेटर का उपयोग कर सकते हैं:

$digits = (0..9)

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

$values = @()

एकाधिक(Multiple) सरणियों को एक दूसरे में नेस्ट भी किया जा सकता है, हालांकि इस प्रकार का उपयोग बहुत तेजी से भ्रमित कर सकता है।

$coordinates = @(
    (5, 10, 23),
    (11, 7, 16)
)

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

[int[]] $numbers = 2,3,4,5

इस तरह, सरणी केवल पूर्णांक धारण कर सकती है। इसे किसी अन्य प्रकार का मान निर्दिष्ट करने का प्रयास एक त्रुटि लौटाएगा। यह विशेष रूप से संख्यात्मक मानों के साथ काम करने वाले सरणियों के लिए सरल त्रुटियों को रोकने के लिए उपयोगी हो सकता है, क्योंकि गणना में उपयोग किए जाने वाले चर में एक स्ट्रिंग दर्ज करने से समस्याएँ पैदा होंगी।

ऐरे एक्सेस करना

अब तक हमने विभिन्न प्रकार के डेटा वाली सरणियाँ बनाने की कई विधियाँ देखी हैं। लेकिन आप इस डेटा तक कैसे पहुंचेंगे?

पावरशेल(PowerShell) सरणियाँ अन्य प्रोग्रामिंग भाषाओं द्वारा उपयोग किए जाने वाले समान प्रारूप का उपयोग करती हैं। प्रत्येक सरणी चर को उसके सूचकांक संख्या द्वारा पहुँचा जा सकता है। उदाहरण के लिए:

$var = $numbers[5]

$var वेरिएबल में $numbers ऐरे के इंडेक्स पांच में स्टोर किए गए मान को कॉपी करेगा । ध्यान दें कि सरणी सूचकांकों की गिनती 0 से शुरू होती है, इसलिए पहली वस्तु को शून्य से एक्सेस किया जाता है।

अगर हम इसे आउटपुट करते हैं, उदाहरण के लिए:

“$days[2]”

हमें बुधवार नहीं मंगलवार मिलेगा।

आप इन मानों को संशोधित करने के लिए भी इसी विधि का उपयोग कर सकते हैं। उदाहरण के लिए, निम्न आदेश सरणी के दूसरे तत्व को शून्य में बदल देगा:

$numbers[1] = 0

आप मौजूदा प्रविष्टियों के मूल्यों को केवल अंकगणितीय अभिव्यक्ति की तरह जोड़कर बदलने के बजाय मौजूदा सरणी में अधिक तत्व जोड़ सकते हैं।

$names += “Johny”

इस पद्धति का उपयोग एक साथ कई प्रविष्टियाँ जोड़ने के लिए भी किया जा सकता है, या यहाँ तक कि संपूर्ण सरणियाँ भी।

$names += “Charlie, Liam, Teresa”

$names += $surnames

अल्पविराम से अलग की गई विधि कई सरणी तत्वों तक पहुँचने के लिए भी है। $days$weekdays में संग्रहीत करता है ।

$weekdays = $days[0,1,2,3,4]

सरणियों के माध्यम से पुनरावृति

किसी सरणी के विशेष तत्वों को मैन्युअल रूप से एक्सेस करना अच्छा और अच्छा है, लेकिन यदि आप किसी सरणी की संपूर्ण सामग्री पर कार्रवाई करना चाहते हैं, तो यह थकाऊ हो सकता है। फॉर लूप का उपयोग करने के लिए एक और अधिक सुरुचिपूर्ण तरीका है।

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

For ($i = 0 ; $i -lt $days.Length ; $i++){
    $days[$i]}

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

Foreach लूप और Foreach -ऑब्जेक्ट(Foreach) लूप एक समान दुबला पावरशेल स्क्रिप्ट के साथ भी ऐसा ही कर सकते हैं(PowerShell)

Foreach ($day in $days){
    $day}

यह आपको सरणी के आकार को निर्धारित करने के प्रयास को बचाता है, जिससे पावरशेल(PowerShell) को संभालने के लिए विवरण छोड़ दिया जाता है।

आपको PowerShell Arrays(PowerShell Arrays) का उपयोग कब करना चाहिए

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

इस समस्या के लिए सबसे सरल समाधान बड़े पैमाने पर सरणियों का उपयोग करना है। किसी न किसी तरीके से संबंधित सभी चर को एक ही सरणी को सौंपा जा सकता है और उनकी अनुक्रमणिका संख्याओं के माध्यम से पहुँचा जा सकता है।

Microsoft PowerShell का(Microsoft PowerShell’s) प्रमुख उपयोग मामला स्वचालन है, और सरणियाँ उसमें एक महत्वपूर्ण भूमिका निभाती हैं। PowerShell cmdlets द्वारा लौटाई गई वस्तुओं को सरणियों में संग्रहीत किया जा सकता है और पुनरावृत्त किया जा सकता है। यह अनुक्रमिक कार्यों को स्वचालित रूप से निष्पादित करने की अनुमति देता है, सिस्टम प्रशासन को बहुत सरल करता है।



About the author

मैं एक सॉफ्टवेयर इंजीनियर हूं जिसे क्रोम और गेमिंग एप्लिकेशन दोनों में अनुभव है। मैं पिछले 4 वर्षों से Google क्रोम ब्राउज़र के समाधान पर काम कर रहा हूं और कई अलग-अलग प्लेटफार्मों के लिए गेम पर भी काम किया है। मेरा कौशल सॉफ्टवेयर परियोजनाओं की डिजाइनिंग, परीक्षण और प्रबंधन में निहित है। एक सॉफ्टवेयर इंजीनियर के रूप में अपने काम के अलावा, मुझे गोपनीयता, उपयोगकर्ता खातों और पारिवारिक सुरक्षा के मुद्दों का भी अनुभव है।



Related posts