PowerShell 技能连载 - 用 Out-Host 代替 More

适用于 PowerShell 控制台

请注意本文所述的内容仅限于“真实的”控制台使用。它不适用于 PowerShell ISE 编辑器。

在 PowerShell 控制台中,许多用户在要分页输出数据时仍然采用管道输出到 more.com 的老办法:

PS> dir c:\windows | more

这看起来能用。不过当您输出大量数据到管道的时候,PowerShell 看起来卡住了:

PS> dir c:\windows -Recurse -ErrorAction SilentlyContinue | more

这是因为 more.com 无法实时工作。它会首先收集所有的输入数据,然后开始分页输出。

更好的办法是使用 Out-Host cmdlet,结合 -Paging 参数:

PS> dir c:\windows -Recurse -ErrorAction SilentlyContinue | Out-Host -Paging

它能即时输出结果,因为它一旦从管道接收到数据,就可以开始处理。

PowerShell 技能连载 - 用 Out-Host 代替 More

http://blog.vichamp.com/2014/11/07/use-out-host-instead-of-more/

作者

吴波

发布于

2014-11-07

更新于

2022-07-06

许可协议

评论