PowerShell масиви: как да ги създадете и използвате

Променливите са най-основната структура от данни във всеки тип кодиране(any type of coding) . Но единичните променливи едва ли са достатъчни за повечето цели, особено когато се работи с по-сложни алгоритми.

Това е мястото, където идват масивите. Независимо дали са C++ или Python , масивите присъстват във всеки програмен език под някаква форма. Но какво да кажем за Windows PowerShell ? Как работят масивите на PowerShell ? (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(PowerShell) използват същия формат, използван от други езици за програмиране. Всяка променлива на масива може да бъде достъпна чрез нейния индексен номер. Например:

$var = $numbers[5]

Това ще копира стойността, съхранена в петия индекс на масива $numbers в променливата $varОбърнете внимание, че индексите на масива започват да се броят от 0, така че първият елемент е достъпен с нула.

Ако изведем това, например:

“$days[2]”

Ще получим сряда, а не вторник.

Можете да използвате същия метод, за да промените и тези стойности. Например, следната команда ще промени втория елемент на масива на нула:

$numbers[1] = 0

Можете също така да добавите повече елементи към съществуващ масив, вместо да променяте стойностите на текущите записи, просто като ги добавите като аритметичен израз.

$names += “Johny”

Този метод може да се използва и за добавяне на множество записи наведнъж или дори цели масиви.

$names += “Charlie, Liam, Teresa”

$names += $surnames

Методът, разделен със запетая, се отнася и за достъп до множество елементи от масив. Въвеждането на това, например, съхранява първите пет елемента на $days в $weekdays .

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

Итерация през масиви

Ръчното осъществяване на достъп до конкретни елементи от масив е добре, но ако искате да извършвате действия върху цялото съдържание на масив, това може да стане досадно. По-елегантен подход е използването на For цикъл.

Циклите For могат систематично да преминават през всички елементи на масив, като обработват всяка стойност според инструкциите. Ето как можете да конструирате такъв цикъл:

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

Функцията array.Length връща размера на масива, който всъщност е броят на елементите в него. Това може да бъде включено в параметъра на тестовия израз на For цикъл за цялостно итериране на всички елементи.

Цикълът Foreach и цикълът Foreach -object(Foreach) могат да направят същото с още по-икономичен скрипт на PowerShell .

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

Това ви спестява усилията за определяне на размера на масива, оставяйки подробностите за обработка на PowerShell .

Кога трябва да използвате PowerShell масиви(PowerShell Arrays)

Най-големият източник на грешки в сложен скрипт са неправилно посочените променливи. Това се случва поради наличието на голям брой променливи с уникални имена, което затруднява запомнянето на предназначението им.

Най-простото решение за този проблем е масовото използване на масиви. Всички променливи, свързани по някакъв начин, могат да бъдат присвоени на един масив и достъпни чрез техните индексни номера.

Основният случай на използване на Microsoft PowerShell(Microsoft PowerShell’s) е автоматизацията, а масивите играят ключова роля в това. Обектите, върнати от кратки команди на PowerShell , могат да се съхраняват в масиви и да се повтарят. Това позволява автоматичното изпълнение на последователни задачи, което значително опростява администрирането на системата.



About the author

Аз съм уеб разработчик с опит в работата както с Windows 11, така и с 10. Също така съм потребител на Firefox от много години и съм станал доста опитен в използването на изцяло новата конзола за игри Xbox One. Основните ми интереси са в разработката на софтуер, по-специално в уеб и мобилното развитие, както и науката за данни. Имам много добри познания относно различни компютърни системи и тяхното използване, така че мога да предоставя безпристрастна обратна връзка за различни програми или услуги, които може да използвате.



Related posts