Как PowerShell for Loop может запускать команду несколько раз


Цикл For – один из самых ценные инструменты на любом языке программирования, и  Microsoft PowerShell ничем не отличается. Для повторения команд можно использовать и другие циклы, но цикл For, пожалуй, самый простой.

От перебора массивов до выполнения функции заданное количество раз — с помощью этого инструмента можно достичь многих целей. Вот руководство по использованию циклов For в PowerShell.

Какая польза от циклов For в PowerShell?

В отличие от Командная строка, PowerShell представляет собой полноценную среду сценариев. Это означает, что вы можете написать многоразовый Скрипты PowerShell для автоматического выполнения задач, а не вводить команды вручную. Циклы For являются ключом к написанию этих модулей.

Инструкция For повторяет блок сценария определенное количество раз, изменяя заданную переменную для отслеживания прогресса. Это позволяет использовать цикл в некоторых довольно интересных сценариях.

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

Синтаксис цикла For в PowerShell

Циклы For работают в Windows PowerShell так же, как и в любом языке программирования. Выражения, инициализирующие переменную отслеживания, проверяющие ее значение и изменяющие переменную, заключены в скобки после слова «For», разделенные точкой с запятой. Затем следует сам список операторов, заключенный в фигурные скобки.

Для (Инициализация; Состояние; Обновление)

{

    Блокировка скриптов

Как использовать цикл For в скрипте PowerShell

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

Предположим, вам нужно написать фрагмент кода, который может найти сумму всех натуральных чисел до числа n, содержащегося в переменной $n. Вот базовый пример цикла For:

$n = 10

$сумма = 0

Для ($i = 1 ; $i -le $n ; $i++)

{

    $sum = $sum + $i

“Сумма $n натуральных чисел равна $sum”

Доступ к массивам через цикл for

.

Генерация числовых последовательностей – это вряд ли то, для чего большинство людей используют PowerShell. Более распространенное использование — перебор массива.

Предположим, у вас есть массив $week из семи элементов. Вы можете вывести список дней, содержащихся в массиве, с помощью простого цикла For, как показано в следующем примере.

Для ($i = 0 ; $i -lt $week.Length ; $i++)

{

    $week[$i]

Использование цикла ForEach для быстрого обхода массива

Другой формой цикла For является оператор ForEach. Эта версия упрощает просмотр содержимого массива PowerShell и его обработку по отдельности. Например, предыдущий фрагмент кода можно переписать так:

Foreach ($день в $неделе)

{

    $день

При работе с более сложными объектами вы также можете использовать командлет Foreach-Object для выполнения действия над содержимым любой команды PowerShell.

Чем цикл for отличается от других типов циклов?

Цикл For — не единственный доступный тип оператора цикла. Как и большинство языков программирования, PowerShell имеет несколько типов циклов.

Пока

Самый простой из них — цикл While. Все, что у вас есть, — это условие и блок сценария, и цикл выполняется до тех пор, пока проверочное выражение принимает значение true. Поскольку выражение вычисляется первым, существует вероятность того, что код вообще не запустится или превратится в бесконечный цикл.

Пока (Условие)

{

    Блокировка скриптов

Делай пока

Если вы пишете сценарий, который необходимо запустить хотя бы один раз (даже если выражение имеет значение false), вы можете использовать цикл Do-While. Единственное отличие от цикла While состоит в том, что он помещает командный блок перед условием, а это означает, что код выполняется до первой проверки тестового выражения.

Сделайте {

    Блокировка скрипта

Пока (Условие)

Делать-пока

Другая версия этого цикла — Do-Until. По сути, он запускает блок кода, а затем повторяет его до тех пор, пока тестовое выражение не станет истинным – это обратный циклу Do-While. Не особенно полезная структура, поскольку того же самого можно добиться, изменив условие в стандартном цикле Do-While..

Сделайте {

    Блокировка скриптов

До (Условие)

Почему цикл For лучше

Проблема всех этих других циклических структур заключается в том, что они не включают в себя операторы начального значения или обновления. Вам придется вручную не забывать создавать переменную вне цикла, а затем увеличивать ее (или уменьшать) во время каждого прохода цикла.

Как и следовало ожидать, программисты часто забывают об этом шаге, что приводит к тому, что скрипт не работает должным образом. Это тратит драгоценное время на отладку.

Цикл For позволяет избежать этой проблемы, поскольку требует инициализации и увеличения выражений в начальных скобках. Это приводит к созданию более чистых и надежных сценариев.

Когда следует использовать цикл For в PowerShell?

PowerShell предназначен для создания сценариев для автоматизации. И, вероятно, наиболее полезным инструментом для достижения этой цели является цикл For. Вы можете использовать его для замены многих операций копирования и вставки более компактным и элегантным скриптом.

Наиболее распространенной функцией этого цикла является перебор массива по одной записи за раз. Для еще более упрощенного сценария вы также можете использовать цикл ForEach. Вы также можете использовать цикл For для создания числовых последовательностей, хотя это требуется редко.

Цикл For превосходит другие алгоритмы цикла, поскольку включает в параметры все основные функции цикла, предотвращая любые ошибки из-за забывания этих операторов. Это делает цикл For незаменимым в любом сценарии, требующем повторения набора команд.

.

Похожие сообщения:


5.04.2022