如何将命令的输出作为流逐行处理

Ale*_*tof 6 powershell

编写SomeCommand | { ... }将全部输出通过管道SomeCommand传递到花括号中的代码。有没有一种方法可以一次“管道传输”一行,并让大括号中的代码逐行处理,而不必等待整个输出都存储在内存中?

更新资料

[从评论中复制]

SomeCommand是可执行文件(不是powershell cmdlet),在运行时会产生一些输出。它产生的各行之间需要花费一些时间,我不想等到所有行都产生后才对每一行执行一些操作

Bar*_*ekB 4

为了使脚本块能够访问管道,您需要在其中包含进程块:比较两者:

1, 2, 3 | & {
    process {
        $_
        Start-Sleep -Seconds 1
    }
}

1, 2, 3 | & {
    $input
    Start-Sleep -Seconds 1
}
Run Code Online (Sandbox Code Playgroud)

显然,Foreach-Object(在前面的答案中提到)通常是比在这种情况下使用脚本块更好的选择,但既然您要求脚本块,那么脚本块也是您应该得到的......