-
Notifications
You must be signed in to change notification settings - Fork 4
Loops
Vector BCO edited this page Jun 7, 2020
·
11 revisions
wiki Цикл - многократно исполняемая последовательность инструкций
+ Удобная конструкция перебора объектов или свойств по одному за итерацию
+ Удобная конструкция повторения блоков кода, функций итд.
- Ресурсоемкая функциональность
- Простота допустить ошибку с вложенностью и количеством элементов что может привести к ухудшению производительности
- Возможность создать вечную петлю ("зависание" скрипта)
В PowerShell get-help about_Do get-help about_For get-help about_While get-help about_Foreach
**Foreach -Parrallel в PowerShell 5 (Workflows)**
Get-Help about_Foreach-Parrallel Foreach-Parrallel для PowerShell < 7 версии Bonus
**Foreach -Parrallel в PowerShell 7**
get-help about_Break get-help about_Continue
Пока <Statement> не будет правдиво <Code> будет выполняться
При любом <Statement>, <Code> выполниться минимум 1 раз.
$i = 1
Do {
$i
$i++
} Until ( $i -ge 5 )Традиционный механизм позволяющий повторить часть кода несколько раз до тех пор пока <Statement> будет равно $True
Полные аналоги есть во многих языках.
For ( $i = 1 ; $i -le 5 ; $i++ ) { $i }For ($i = $k = 1 ; $i -le 5; write-host "k : $k") {
$i
$i++
$k = $i
}Если <Statement> равно $True - код будет выполняться
В отличии от Do\Until если <Statement> будет $False код внутри цикла не выполнится ни разу
$i = 1
While($i -le 5){
$i
$i++
}1..5 | Foreach-Object { $_ }ForEach-Object -InputObject @(1..5) -Process { $_ }ForEach($i in @(1..10)) { Test-Connection -Quiet "172.28.110.$i" -Count 1 }Все утверждения для PowerShell 5 справедливо кроме Workflow который в 7 версии обозначен как Deprecated В свою очередь Foreach-Object -Parallel в PoSh7 работает без дополнительных оберток (из коробки)
1..10 | ForEach-Object -Parallel { Test-Connection -Quiet "172.28.110.$_" -Count 1 }