对于命令行管理工具而言,“管道”是一个重要概念。PowerShell 同样提供了管道功能,可以在一个序列行中将多个命令连接起来,以实现一些较为复杂的任务。

 

一、输出结果到CSV或XML文件

作为系统管理员,经常会查看一些系统状态,比如:系统目前的进程情况、服务运行情况等。虽然我们可以通过 GUI 的应用程序来查看,但是有时候通过命令行查看后输出到CSV或XML文件,再进行一些分析、比较,也是需要掌握的技能。

【输出到CSV】:Get-Process | Export-CSV

Screen Shot 2017-02-10 at 10.52.50.png

用记事本查看输出的文件。

Screen Shot 2017-02-10 at 11.00.25.png

对比一下在console中执行 Get-Process 命令时的结果,可以看出输出到CSV文件中的信息远远多于屏幕显示的信息。这是由于屏幕容量有限,PowerShell 只把最重要的信息显示在了屏幕上。

Screen Shot 2017-02-10 at 11.05.41.png

【输出到XML】:Get-Process | Export-CliXML

“CliXML”是 PowerShell 专用。

Screen Shot 2017-02-10 at 11.12.17.png

用记事本查看 XML 文件。

Screen Shot 2017-02-10 at 11.13.56.png

用 IE 查看。

Screen Shot 2017-02-10 at 11.17.30.png

二、传输到打印机

【命令】:Get-Process | Out-Printer

将命令结果直接输出到默认打印机。

Screen Shot 2017-02-10 at 11.37.02.png

由于测试系统没有安装实体打印机,所以该命令直接存储结果到PDF文档。

命令之间是否能形成有意义的管道是有一定规则的,且听下回分解。