Powershell 中的管道

管道

上个命令中的输出,通过管道作为下个命令的输入。Linux中的管道传递的是text,但ps中传递的是object。但是命令究竟返回的是什么类型呢?以下命令回答了这个问题:

get-service | get-member

这样就获取到get-service的返回类型:

TypeName: System.ServiceProcess.ServiceController

于是,我们必须找到**从pipeline中获取 System.ServiceProcess.ServiceController 对象的命令:

Get-Command -ParameterType System.ServiceProcess.ServiceController

结果中有Stop-Service命令,查看其帮助文档

Get-Help –Name Stop-Service

看到第一个参数是:[-InputObject] <ServiceController[]> ,一般来说,参数叫做InputObject,都可以从管道中接收输入。通过以下命令查看完整帮助:

Get-Help –Name Stop-Service -Full

于是可以试验,获取服务,并停止服务:

Get-Service -Name ‘Apple Mobile Device’ | Stop-Service

以上命令:通过名字获取服务,返回的结果是

ServiceController 类型的,通过管道传给Stop-Service作参数。

原文地址:https://www.cnblogs.com/heenhui2016/p/11008929.html