Как PowerShell For Loop може да изпълнява команда няколко пъти

Цикълът For е един от най- ценните инструменти във всеки език за програмиране(valuable tools in any programming language) и  Microsoft PowerShell не е по-различен. Можете да използвате други цикли, за да повтаряте команди, но цикълът For е може би най-простият.

От повторение на масиви до изпълнение на функция предварително определен брой пъти, има много неща, които можете да постигнете с този инструмент. Ето урок за това как да използвате цикли For в PowerShell .

Каква е употребата на (Use)циклите(Loops) For в PowerShell ?

За разлика от командния ред(Command Prompt) , PowerShell е пълна среда за скриптове. Това означава, че можете да пишете скриптове на PowerShell(PowerShell scripts) за многократна употреба, за да изпълнявате автоматично задачи, вместо да въвеждате команди ръчно. И циклите For са ключът към писането на тези модули.

Инструкцията For повтаря блок на скрипт определен брой пъти, променяйки дадена променлива, за да следи прогресията. Това ви позволява да използвате цикъла за някои доста интересни сценарии.

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

Синтаксисът на цикъл (Syntax)For(Loop) в PowerShell

Циклите за работят в Windows PowerShell по същия начин, както във всеки език за програмиране. Изразите, които инициализират проследяващата променлива, тестват нейната стойност и променят променливата, са разположени в скоби след „For“, разделени с точка и запетая. След това идва самият списък с изявления, обвързан с къдрави скоби.

За ( Инициализация(Initialization) ; Условие(Condition) ; Актуализация(Update) )

{

    Скриптов блок(Script Block)

}

Как да използвате цикъла(Loop) For в скрипт на PowerShell(PowerShell Script)

Използването на цикъла For е доста просто. Всеки път, когато срещнете ситуация, която изисква повторение на малко различна стъпка, трябва да я поставите в цикъл For.

Да приемем, че трябва да напишете кодов фрагмент, който може да намери сбора от всички естествени числа до число n , съдържащо се в променливата $n. Ето един основен пример за цикъл For:

$n = 10

$sum = 0

За ($i = 1; $i -le $n; $i++)

{

    $sum = $sum + $i

}

„Сборът от $n естествени числа е $sum“

Достъп до масиви чрез цикъл For

Генерирането на числови поредици едва ли е това, за което повечето хора използват PowerShell . По-често срещана употреба е итерацията върху масив.

Да кажем(Say) , че имате масив $week със седем елемента. Можете да изведете списъка с дните, съдържащи се в масива, като използвате прост цикъл For, както е показано в следващия пример.

За ($i = 0 ; $i -lt $week.Length ; $i++)

{

    $седмица[$i]

}

Използване на цикъла ForEach(ForEach Loop) за бързо итериране(Quickly Iterate) през масив

Друга форма на цикъла For е операторът ForEach . Тази версия опростява преминаването през съдържанието на PowerShell масив и обработката им поотделно. Предишният кодов фрагмент, например, може да бъде пренаписан по следния начин:

Foreach ($ден в $седмица)

{

    $ден

}

Когато работите с по-сложни обекти, можете също да използвате командлета Foreach-Object, за да извършите действие върху съдържанието на всяка команда на PowerShell .

Как се различава цикълът(Loop Different) For от другите видове (Types)цикли(Loops) ?

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

Докато

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

Докато ( Условие(Condition) )

{

    Скриптов блок(Script Block)

}

Прави-Докато

Ако пишете скрипт, който трябва да се изпълни поне веднъж – дори ако изразът се оценява на false – тогава можете да използвате цикъла Do-While . Единствената разлика от цикъла While е, че той поставя командния блок преди условието, което означава, че кодът се изпълнява преди тестовият израз да бъде проверен за първи път.

направете {

    Скриптов блок(Script block)

}

Докато ( Условие(Condition) )

Прави-докато

Друга версия на този цикъл е Do-Until . По принцип(Basically) той изпълнява кодовия блок и след това го повтаря, докато тестовият израз е истинен – обратното на цикъла Do-While . Не е особено полезна структура, тъй като можете да постигнете същото, като модифицирате условието в стандартен цикъл Do-While .

направете {

    Скриптов блок(Script Block)

}

До ( Условие(Condition) )

Защо цикълът For е по-добър

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

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

Цикълът For избягва този проблем, като налага инициализирането и инкрементирането на изразите в началните скоби. Това води до по-чисти и по-стабилни скриптове.

Кога трябва да използвате цикъла(Loop) For в PowerShell ?

PowerShell е свързан с създаването на скриптове за автоматизация. И може би най-полезният инструмент за постигане на това е цикълът For. Можете да го използвате, за да замените много операции за копиране и поставяне с по-компактен, елегантен скрипт.

Най-често срещаната функция на този цикъл е да итерира масив, един запис в даден момент. За още по-рационализиран скрипт можете да използвате и цикъл ForEach . Можете също да използвате цикъла For за генериране на числови поредици, въпреки че това рядко е необходимо.

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



About the author

Аз съм компютърен програмист и съм от над 15 години. Уменията ми са в разработването и поддържането на софтуерни приложения, както и в предоставянето на техническа поддръжка за тези приложения. Също така съм преподавал компютърно програмиране на гимназисти и в момента съм професионален инструктор.



Related posts