了解管道Understanding pipelines

    用于管道的符号类似于其他 shell 中使用的符号。初看起来 PowerShell 中管道的不同之处可能并不明显。尽管你会在屏幕上看到文本,但 PowerShell 通过管道在命令之间传递对象,而不是文本。

    管道可能是命令行界面中使用的最有价值的概念。如果使用得当,管道可以减少使用复杂命令的工作量,并且可以更轻松地查看命令的工作流程。管道中的每个命令(称为管道元素)将其输出逐项传递到管道中的下一个命令。命令不必一次处理多个项目。结果是减少了资源消耗,并且能够立即开始获取输出。

    分页还会降低 CPU 利用率,因为准备好显示完整页面时,会转为处理 Out-Host cmdlet。管道中位于前面的 cmdlet 暂停执行,直到输出的下一页可用。

    可以看到 Windows 任务管理器监视的 PowerShell 使用的 CPU 和内存存在差异。运行以下命令:Get-ChildItem C:\Windows -Recurse将 CPU 和内存使用情况与此命令进行比较:。

    管道中的对象Objects in the pipeline

    例如,请考虑 Get-Location cmdlet。如果运行 Get-Location,而当前位置是 C 驱动器的根路径,将看到以下输出:

    文本输出是信息摘要,而非 返回的对象的完整表示形式。输出中的标题通过格式化屏幕显示数据的过程添加。

    返回 PathInfo 对象,其中包含当前路径和其他信息。