编写SomeCommand | { ... }
将全部输出通过管道SomeCommand
传递到花括号中的代码。有没有一种方法可以一次“管道传输”一行,并让大括号中的代码逐行处理,而不必等待整个输出都存储在内存中?
更新
[从评论中复制]
SomeCommand
是一个可执行文件(不是powershell cmdlet),在运行时会产生一些输出。它产生的各行之间需要花费一些时间,我不想等到所有行都产生后才对每一行执行一些操作
为了使脚本块能够访问管道,您需要在其中包含过程块:比较两者:
1, 2, 3 | & {
process {
$_
Start-Sleep -Seconds 1
}
}
1, 2, 3 | & {
$input
Start-Sleep -Seconds 1
}
显然,Foreach-Object
(在先前的回答中提到)通常比在这种情况下使用脚本块更好,但是由于您要求使用脚本块,因此脚本块也是您应该得到的...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句