Windows PowerShell स्क्रिप्ट में सरणी सूचियों के साथ कार्य करना
अपनी स्क्रिप्ट में, आपको वह डेटा देखना होगा जिसे आप सरणियों में डालते हैं. आप या तो सरणी में सभी वस्तुओं को एक साथ एक्सेस कर सकते हैं या उन्हें व्यक्तिगत रूप से एक्सेस कर सकते हैं। किसी सरणी में सभी आइटम्स प्रदर्शित करने के लिए, आप चर नाम दर्ज करते हैं और फिर Enter कुंजी दबाते हैं, ठीक वैसे ही जैसे आप एकल मान वाले चर के लिए करते हैं.
आप किसी सरणी में अलग-अलग आइटम्स को उनकी इंडेक्स संख्या से संदर्भित कर सकते हैं. जब आप एक सरणी बनाते हैं, तो प्रत्येक आइटम को 0 से शुरू होने वाली एक अनुक्रमणिका संख्या असाइन की जाती है। तो, सरणी में रखा गया पहला आइटम आइटम 0 है, सरणी में दूसरा आइटम आइटम 1 है, और इसी तरह। किसी विशिष्ट आइटम को प्रदर्शित करने के लिए, चर नाम के बाद इंडेक्स नंबर को कोष्ठक में रखें। निम्न उदाहरण किसी सरणी में पहला आइटम प्रदर्शित करता है जो चर $users में संग्रहीत है:
$users[0]
आप किसी सरणी में कोई नया आइटम भी जोड़ सकते हैं. निम्न उदाहरण $user1 में संग्रहीत उपयोगकर्ता खाते को $users सरणी में जोड़ता है:
$users = $users + $user1
वैकल्पिक रूप से, किसी सरणी में आइटम जोड़ते समय, आप निम्न शॉर्टहैंड नोटेशन का उपयोग कर सकते हैं:
$users += $user1
यह पहचानने के लिए कि आप किसी सरणी में सामग्री के साथ क्या कर सकते हैं, Get-Member cmdlet का उपयोग करें. सरणी की सामग्री को Get-Memberपर पाइप करें, और लौटाए गए परिणाम उन गुणों और विधियों की पहचान करते हैं जिनका उपयोग आप सरणी में आइटम्स के लिए कर सकते हैं. उदाहरण के लिए:
$files | Get-Member
नोट
जब आप मिश्रित डेटा प्रकारों वाली सरणी को Get-Memberमें पाइप करते हैं, तो परिणाम प्रत्येक डेटा प्रकार के लिए लौटाए जाते हैं. यह निर्धारित करने का एक सहायक तरीका भी है कि सरणी में कौन से डेटा प्रकार हैं।
सरणी में आइटम्स के बजाय किसी सरणी के लिए उपलब्ध गुणों और विधियों की समीक्षा करने के लिए, निम्न सिंटैक्स का उपयोग करें:
Get-Member -InputObject $files
सरणी सूचियों के साथ कार्य करना
Windows PowerShell द्वारा बनाई जाने वाली सरणी का डिफ़ॉल्ट प्रकार एक निश्चित-आकार सरणी है. इसका मतलब यह है कि जब आप सरणी में कोई आइटम जोड़ते हैं, तो सरणी वास्तव में अतिरिक्त आइटम के साथ फिर से बनाई जाती है। जब आप अपेक्षाकृत छोटे सरणियों के साथ काम करते हैं, तो यह चिंता का विषय नहीं है। हालाँकि, यदि आप एक-एक करके किसी सरणी में हज़ारों आइटम्स जोड़ते हैं, तो हर बार किसी सरणी को फिर से बनाने से नकारात्मक प्रदर्शन प्रभाव पड़ता है. निश्चित आकार के सरणियों का उपयोग करते समय दूसरी चिंता वस्तुओं को हटा रही है। निश्चित आकार की सरणी से किसी आइटम को हटाने का कोई सरल तरीका नहीं है।
सरणियों की कमियों को दूर करने के लिए, आप एक सरणी सूची का उपयोग कर सकते हैं। एक सरणी सूची एक सरणी के समान कार्य करती है, सिवाय इसके कि इसका एक निश्चित आकार नहीं है। इसका मतलब है कि आप आइटम जोड़ने और हटाने के तरीकों का उपयोग कर सकते हैं।
मान असाइन करते समय सरणी सूची बनाने के लिए, निम्न सिंटैक्स का उपयोग करें:
[System.Collections.ArrayList]$computers = "LON-DC1","LON-SVR1","LON-CL1"
रिक्त और आइटम्स जोड़ने के लिए तैयार सरणी सूची बनाने के लिए, निम्न सिंटैक्स का उपयोग करें:
$computers=New-Object System.Collections.ArrayList
जब आप किसी सरणी सूची का उपयोग करते हैं, तो आप आइटम्स जोड़ने और निकालने दोनों के लिए विधियों का उपयोग कर सकते हैं. हालाँकि, ये विधियाँ विफल हो जाएँगी जब आप उन्हें एक निश्चित-आकार सरणी पर उपयोग करने का प्रयास करें। उदाहरण के लिए:
$computers.Add("LON-SRV2")
$computers.Remove("LON-CL1")
नोट
जब आप किसी सरणी सूची से कोई आइटम निकालते हैं, यदि एकाधिक मेल खाने वाले आइटम हैं तो केवल पहला उदाहरण निकाला जाता है।
यदि आप अनुक्रमणिका संख्या पर आधारित सरणी सूची से कोई आइटम निकालना चाहते हैं, तो आप RemoveAt() विधि का उपयोग करें। उदाहरण के लिए:
$computers.RemoveAt(1)