Главная > Powershell > Скрытые возможности массивов в Powershell 4.0

Скрытые возможности массивов в Powershell 4.0

В Powershell 4.0 появились такие интересные фишки, как Foreach и Where, встроенные прямо в массивы.

Какого-либо ощутимого преимущества по сравнению с обычным конвейером они не имеют. Разве что команда получается немного короче и имеет совсем небольшой прирост в скорости.

Как же ими пользоваться?

Всё очень просто. Нужно после массива через точку указать Foreach, или Where, после чего в круглых скобках привести выражение.

Например, классическая команда для выбора из массива нечётных чисел

@(1..10) | Where-Object {$_ % 2}

будет иметь вид:

@(1..10).Where({$_ % 2})

Или более практичный пример. Отобразить только запущенные службы:

@(Get-Service).Where({$_.Status -eq 'Running'})

Если с каждой из этих служб нужно сделать какое-то действие, то его (действие) нужно дописать через Foreach. Например, остановить:

@(Get-Service).Where({$_.Status -eq 'Running'}).Foreach(
    {Stop-Service $_ -WhatIf})

И ещё одна недокументированная возможность. Следующая команда получает из массива первые 4 числа больше 2:

@(1..10).Where({$_ -gt 2}, 'skipuntil', 4)
Реклама
Рубрики:Powershell Метки:
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: