pipeline和foreach什么时候创造价值?

When pipeline and foreach create value?

我在等待这个表情的回应 1..2 | foreach { echo $_; $_ } | foreach { $_*$_ }

1
1
2
4

但收到

1
1
4
4

所以我不明白为什么会这样。

Echo 将其输出发送到第二个 foreach。我认为您想使用 write-host,它不会将其输出发送到管道的其余部分。 Echo 会在 cmd 或 bash.

中做同样的事情
1..2 | foreach { write-host $_; $_ } | foreach { $_*$_ }

1
1
2
4