PowerShell მასივები: როგორ შევქმნათ და გამოვიყენოთ ისინი

Admin

ცვლადები არის მონაცემთა ყველაზე ძირითადი სტრუქტურა ნებისმიერი ტიპის კოდირება. მაგრამ ერთი ცვლადი ძნელად საკმარისია უმეტესი მიზნებისთვის, განსაკუთრებით მაშინ, როდესაც საქმე გვაქვს უფრო რთულ ალგორითმებთან.

სწორედ აქ შემოდის მასივები. იქნება ეს C++ თუ პითონი, მასივები წარმოდგენილია ყველა პროგრამირების ენაში გარკვეული ფორმით. მაგრამ რაც შეეხება Windows PowerShell-ს? როგორ მუშაობს PowerShell მასივები? როგორ იყენებთ მათ? როგორია მათი სინტაქსი? გავარკვიოთ.

Სარჩევი

PowerShell Arrays 101

მარტივად რომ ვთქვათ, მასივი მხოლოდ ცვლადების სტრუქტურირებული კოლექციაა. იდეა მდგომარეობს იმაში, რომ აღმოიფხვრას ათობით სახელის თვალყურის დევნების სირთულეები, დაკავშირებული ცვლადების დანომრილ კომპლექტში კოლაფსირებით.

PowerShell-ში შეგიძლიათ შექმნათ ცვლადი $ სიმბოლოს ცვლადის სახელზე მიმაგრებით. Მაგალითად:

$prime = 13

ცვლადი შეიძლება შეიცავდეს მონაცემთა ნებისმიერ ტიპს, რიცხვებიდან სტრიქონებამდე. თქვენ უბრალოდ უნდა გამოიყენოთ ორმაგი ან ერთჯერადი ბრჭყალები სტრიქონის დასაზუსტებლად.

$name = „ლევინი“

ახლა ახალი მასივის შესაქმნელად, უბრალოდ მივანიჭეთ რამდენიმე მნიშვნელობა იმავე ცვლადს, გამოყოფილი მძიმეებით. Ამგვარად:

$week = "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი", "კვირა"

ზოგიერთი ადამიანი ურჩევნია ცვლადის მკაფიოდ ჩასმა მასივში, რათა თავიდან აიცილოს დაბნეულობა, თუმცა ეს არ არის აუცილებელი. ამისათვის ჩადეთ მნიშვნელობები ფრჩხილებში, წინამდებარე @ სიმბოლოთი.

$კვირა = @("ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი", "კვირა")

ეს ჩვეულებრივ გამოსადეგია, როდესაც ცდილობთ სხვა ბრძანებების გამომავალი მასივში ჩასმას, სადაც არ შეგიძლიათ ხელით ჩაწეროთ ისინი სწორ ფორმატში.

მასივის შექმნა

ჩვენ უკვე ვნახეთ მასივის შექმნის ყველაზე გავრცელებული მეთოდი. მაგრამ სიტუაციიდან გამომდინარე, არსებობს სხვა გზები, რომლებიც შეიძლება იყოს უფრო შესაფერისი. მაგალითად, თუ გსურთ შექმნათ მასივი, რომელიც შეიცავს რიცხვების დიაპაზონს, შეგიძლიათ გამოიყენოთ დიაპაზონის ოპერატორი:

$ციფრი = (0..9)

ეს შექმნის ათივე ციფრის მასივს ნულიდან ცხრამდე. თქვენ ასევე შეგიძლიათ ცარიელი მასივის ინიციალიზაცია, იმ შემთხვევაში, თუ უბრალოდ გსურთ მოგვიანებით მნიშვნელობების შესანახი ადგილი.

$values ​​= @()

მრავალი მასივი შეიძლება ერთმანეთშიც კი იყოს ჩასმული, თუმცა ამ ტიპის გამოყენება შეიძლება ძალიან სწრაფად იყოს დამაბნეველი.

$კოორდინატები = @(
(5, 10, 23),
(11, 7, 16)
)

ნაგულისხმევად მასივს შეუძლია შეინახოს ნებისმიერი ტიპის ცვლადი, იქნება ეს რიცხვები, სტრიქონები თუ ორივეს ნაზავი. მაგრამ თქვენ შეგიძლიათ ცალსახად განსაზღვროთ ტიპი, თუ გსურთ შეზღუდოთ მასში მითითებული მნიშვნელობები. Მაგალითად:

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

ამ გზით მასივი მხოლოდ მთელ რიცხვებს იტევს. ნებისმიერი სხვა ტიპის მნიშვნელობის მინიჭების მცდელობა დააბრუნებს შეცდომას. ეს შეიძლება სასარგებლო იყოს მარტივი შეცდომების თავიდან ასაცილებლად მასივებისთვის, რომლებიც ექსკლუზიურად მუშაობენ ციფრულ მნიშვნელობებთან, რადგან სტრიქონის შეყვანა გამოთვლებში გამოსაყენებელ ცვლადში გამოიწვევს პრობლემებს.

მასივებზე წვდომა

აქამდე ჩვენ ვნახეთ მრავალი მეთოდი სხვადასხვა ტიპის მონაცემების შემცველი მასივების შესაქმნელად. მაგრამ როგორ აპირებთ ამ მონაცემებზე წვდომას?

PowerShell მასივები იყენებენ იმავე ფორმატს, რომელსაც იყენებენ სხვა პროგრამირების ენები. მასივის თითოეულ ცვლადზე წვდომა შესაძლებელია მისი ინდექსის ნომრით. Მაგალითად:

$var = $numbers[5]

ეს დააკოპირებს ინდექსში ხუთეულში შენახულ მნიშვნელობას $ნომრები მასივი ში $var ცვლადი. გაითვალისწინეთ, რომ მასივის ინდექსების დათვლა იწყება 0-დან, ამიტომ პირველ ელემენტზე წვდომა ხდება ნულით.

თუ ჩვენ გამოვიყვანთ ამას, მაგალითად:

„$days[2]“

ოთხშაბათს მივიღებთ და არა სამშაბათს.

თქვენ შეგიძლიათ გამოიყენოთ იგივე მეთოდი ამ მნიშვნელობების შესაცვლელად. მაგალითად, შემდეგი ბრძანება შეცვლის მასივის მეორე ელემენტს ნულამდე:

$numbers[1] = 0

თქვენ ასევე შეგიძლიათ დაამატოთ მეტი ელემენტი არსებულ მასივში, ნაცვლად იმისა, რომ შეცვალოთ მიმდინარე ჩანაწერების მნიშვნელობები, უბრალოდ არითმეტიკული გამოსახულების მსგავსად მათი დამატებით.

$names += „ჯონი“

ეს მეთოდი შეიძლება გამოყენებულ იქნას ერთდროულად რამდენიმე ჩანაწერის, ან თუნდაც მთელი მასივების დასამატებლად.

$names += „ჩარლი, ლიამი, ტერეზა“

$names += $გვარები

მძიმით გამოყოფილი მეთოდი ასევე მოქმედებს მასივის რამდენიმე ელემენტზე წვდომისთვის. ამის შეყვანა, მაგალითად, ინახავს პირველ ხუთ ელემენტს $ დღეები in $ კვირის დღეებში.

$კვირის დღეები = $დღეები[0,1,2,3,4]

გამეორება მასივების მეშვეობით

მასივის ცალკეულ ელემენტებზე ხელით წვდომა კარგი და კარგია, მაგრამ თუ გსურთ მოქმედებების შესრულება მასივის მთელ შიგთავსზე, ეს შეიძლება იყოს დამღლელი. უფრო ელეგანტური მიდგომაა For loop-ის გამოყენება.

მარყუჟებს შეუძლიათ სისტემატურად გაიარონ მასივის ყველა ელემენტი, თითოეული მნიშვნელობის დამუშავება ინსტრუქციის მიხედვით. აი, როგორ შეგიძლიათ შექმნათ ასეთი მარყუჟი:

ამისთვის ($i = 0; $i -lt $დღეები. სიგრძე; $i++)
{

$days[$i]
}

მასივი. Length ფუნქცია აბრუნებს მასივის ზომას, რაც ძირითადად არის მასში არსებული ელემენტების რაოდენობა. ეს შეიძლება იყოს ჩართული For loop-ის ტესტის გამოხატვის პარამეტრში, რათა სრულყოფილად განმეორდეს ყველა ელემენტზე.

Foreach-ის მარყუჟს და Foreach-object-ის მარყუჟს შეუძლიათ იგივე გააკეთონ კიდევ უფრო მწირი PowerShell სკრიპტით.

Foreach ($დღე $ დღეში)
{

$ დღე
}

ეს დაზოგავს თქვენ ძალისხმევას მასივის ზომის განსაზღვრისთვის, რაც დეტალებს PowerShell-ს უტოვებს.

როდის უნდა გამოიყენოთ PowerShell მასივები

კომპლექსურ სკრიპტში შეცდომების ყველაზე დიდი წყარო არის არასწორად მითითებული ცვლადები. ეს ხდება ცვლადების დიდი რაოდენობით ცვლადის არსებობის გამო, რაც ართულებს მათი მიზნის დამახსოვრებას.

ამ პრობლემის უმარტივესი გამოსავალი არის მასივების ფართოდ გამოყენება. ყველა ცვლადი, რომელიც დაკავშირებულია გარკვეულწილად, შეიძლება მიენიჭოს ერთ მასივს და წვდომა იყოს მათი ინდექსის ნომრების საშუალებით.

Microsoft PowerShell-ის ძირითადი გამოყენების შემთხვევა არის ავტომატიზაცია და მასივები თამაშობენ გადამწყვეტ როლს ამაში. PowerShell cmdlet-ით დაბრუნებული ობიექტები შეიძლება შეინახოს მასივებში და გაიმეოროს. ეს საშუალებას აძლევს თანმიმდევრული ამოცანების შესრულებას ავტომატურად, რაც მნიშვნელოვნად ამარტივებს სისტემის ადმინისტრირებას.

კეთილი იყოს თქვენი მობრძანება Help Desk Geek-ში - ბლოგი სავსე ტექნიკური რჩევებით სანდო ტექნიკური ექსპერტებისგან. ჩვენ გვაქვს ათასობით სტატია და სახელმძღვანელო, რომელიც დაგეხმარებათ ნებისმიერი პრობლემის მოგვარებაში. ჩვენი სტატიები წაკითხული იქნა 150 მილიონზე მეტჯერ, რაც 2008 წლიდან დავიწყეთ.

ჩვენ არასოდეს დაგიწერთ სპამს, გააუქმეთ გამოწერა ნებისმიერ დროს.

როგორ შეამოწმოთ თქვენი Windows კომპიუტერის ან ლეპტოპის სრული ჯანმრთელობა
როგორ შეამოწმოთ თქვენი Windows კომპიუტერის ან ლეპტოპის სრული ჯანმრთელობა

თქვენს კომპიუტერს აქვს უამრავი კომპონენტი და პროგრამული უზრუნველყოფა, რომლებზეც დროთა განმავლობაშ...

8 GB ოპერატიული მეხსიერება საკმარისია Windows კომპიუტერისთვის?
8 GB ოპერატიული მეხსიერება საკმარისია Windows კომპიუტერისთვის?

მეტი ოპერატიული მეხსიერება უკეთესია, მაგრამ რამდენია საკმარისი თქვენი Windows კომპიუტერისთვის და ...

როგორ მოვაგვაროთ მეხსიერების მთლიანობის გამორთული პრობლემა Windows 11-ზე
როგორ მოვაგვაროთ მეხსიერების მთლიანობის გამორთული პრობლემა Windows 11-ზე

ხედავთ „მეხსიერება გამორთულია. თქვენი მოწყობილობა შეიძლება იყოს დაუცველი. ” შეცდომაა და არ შეგიძლ...