трубы и петли foreach

Недавно я играл с PowerShell и заметил странное поведение при использовании каналов иforeach петли, которые я не мог понять.

Этот простой код работает:

$x = foreach ($i in gci){$i.length}
$x | measure -max

Имеет смысл.

Но этот код не будет:

foreach ($i in gci){$i.length} | measure -max

И я получаю следующую ошибку:

An empty pipe element is not allowed.
At line:1 char:33
+ foreach ($i in gci){$i.length} | <<<<  measure -max
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : EmptyPipeElement

В чем разница между этими двумя методами и почему не работает второй?

Ответы на вопрос(2)

Ваш ответ на вопрос