Новость из категории: Информация

PowerShell: прощай, Goto. Продолжение

Какой оператор использовать

PowerShell: прощай, Goto. Продолжение

Все четыре основных оператора итерации PowerShell (while, do while, do until и for) позволяют повторно выполнять код в зависимости от условия. Используйте тот оператор повторения, который позволяет получить более ясный программный код.

Оператор Foreach

Пользователям, более глубоко знающим PowerShell, известно об операторе foreach, или цикле foreach, который позволяет повторять команды для каждого элемента массива или коллекции объектов. Цикл foreach больше похож на команду For пакетного файла. В следующей статье я покажу, как можно заменить команду For пакетного файла в PowerShell.

Подпрограммы PowerShell

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



function SayHello {

  "Hello, world"

}

# Run the function

SayHello

Простая функция PowerShell


Ключевое слово function указывает PowerShell, что мы определяем функцию.

@Echo Off

Call :SAYHELLO Ken

Echo End of batch file

Goto :END

:SAYHELLO

Echo Hello, %1

:END

Пакетный файл с подпрограммой


Подпрограммы пакетного файла позволяют передавать параметры в подпрограмму с командой Call, и вы можете использовать подставляемые параметры в подпрограмме (%1 и т. д., как показано в коде выше). Оператор param в верхней части функции позволяет сделать то же в PowerShell: он определяет параметры функции.

function SayHello {

  param($name)

  "Hello, $name"

}

# Run the function

SayHello Ken

Функция PowerShell с параметром


Код выше представляет собой расширенный вариант кода «Пакетный файл с подпрограммой» с параметром. При выполнении программного кода в листинге 8 с параметром переменная Sname в функции заменяется параметром, переданным из последней строки (строка «Ken»).

function MyFunction {

  $list = @(1,2,3)

  $list

}

$result = MyFunction

# Output the list

$result

Функция PowerShell возвращает список


Напомню, что у подпрограмм пакетного файла нет собственного способа для возврата значений. Вывод функции в коде «Функция PowerShell с параметром» — собственно выходная строка. Кроме того, PowerShell без проблем возвращает несколько значений из функции; значения автоматически возвращаются списком (также именуемым массивом или коллекцией). В коде выше показана функция, которая возвращает список из трех чисел.

PowerShell: прощай, Goto. Продолжение

Таким образом, в PowerShell нет необходимости в командах Goto и Call. Циклические конструкции PowerShell (while, do while, do until и for) заменяют Goto, а функции заменяют команду Call. Если вы все еще создаете пакетные файлы, то эта статья поможет вам заменить команды Goto и Call в ваших будущих сценариях PowerShell.


<<К началу статьи

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх